【MySQL】数値型:integer,int,tinyint,mediumint,smallint,bigint


ここではMySQLで、数値型(integer,int,tinyint,mediumint,smallint,bigint)について紹介しています。

数値型(整数)の一覧

型名 サイズ 値の範囲(符号あり) 値の範囲(符号あり) 補足
integer 4バイト -2147483648~2147483647 0~4294967295  
int 4バイト -2147483648~2147483647 0~4294967295 integerの別名
tinyint 1バイト -128~127 0~255  
mediumint 3バイト -8388608~8388607 0~16777215  
smallint 2バイト -32768~32767 0~65535  
bigint 8バイト -9223372036854775808~9223372036854775807 0~18446744073709551615

UNSIGNEDオプション

データ型を宣言するとき、UNSIGNEDオプションを指定することで、符号なしの範囲で値を扱うことが出来ます。

次のSQLでは、COL3列にUNSIGNEDオプションを指定します。

CREATE TABLE tab(
 col1 varChar(10)
 ,col2 int
 ,col3 int unsigned
 );

ZEROFILLオプション

データ型を宣言するとき、ZEROFIILLオプションを指定することで、桁数を0埋めすることが出来ます。

次のSQLでは、COL2列はINT型、COL3列はINT型にZEROFILLオプションを指定しています。

mysql> CREATE TABLE tab(col1 varChar(10),col2 int,col3 int zerofill);
Query OK, 0 rows affected (0.05 sec)

mysql> INSERT INTO tab VALUES('00001',1,1);
Query OK, 1 row affected (0.01 sec)

mysql> SELECT * FROM tab;
+-------+------+------------+
| col1  | col2 | col3       |
+-------+------+------------+
| 00001 |    1 | 0000000001 |
+-------+------+------------+
1 row in set (0.00 sec)

COL2列の値はそのまま1ですが、COL3列の値は上位の桁数が0埋めされてました。