MySQLの数値型の括弧の内の数値のデフォルトを確認してみる

MySQLの数値型の括弧の内の数値のデフォルトを確認してみる。


確認用のテーブルを作成する。

create table sample (
  t  tinyint,
  tu tinyint unsigned,
  s  smallint,
  su smallint unsigned,
  m  mediumint,
  mu mediumint unsigned,
  i  int,
  iu int unsigned,
  b  bigint,
  bu bigint unsigned
);

下記の通り。

desc sample;
+-------+-----------------------+------+-----+---------+-------+
| Field | Type                  | Null | Key | Default | Extra |
+-------+-----------------------+------+-----+---------+-------+
| t     | tinyint(4)            | YES  |     | NULL    |       |
| tu    | tinyint(3) unsigned   | YES  |     | NULL    |       |
| s     | smallint(6)           | YES  |     | NULL    |       |
| su    | smallint(5) unsigned  | YES  |     | NULL    |       |
| m     | mediumint(9)          | YES  |     | NULL    |       |
| mu    | mediumint(8) unsigned | YES  |     | NULL    |       |
| i     | int(11)               | YES  |     | NULL    |       |
| iu    | int(10) unsigned      | YES  |     | NULL    |       |
| b     | bigint(20)            | YES  |     | NULL    |       |
| bu    | bigint(20) unsigned   | YES  |     | NULL    |       |
+-------+-----------------------+------+-----+---------+-------+

各型の最大桁数に合わせてるっぽい。

最小値 最大値
tinyint -128 127
tinyint unsigned 0 255
smallint -32768 32767
smallint unsigned 0 65535
mediumint -8388608 8388607
mediumint unsigned 0 16777215
int -2147483648 2147483647
int unsigned 0 4294967295
bigint -9223372036854775808 9223372036854775807
bigint unsigned 0 18446744073709551615