はじめに
データベース設計してるとデータ型で頭がいっぱいになったので、
ここに書き出しておくぜ
より詳しく書き直した記事がこちらにあります
INTEGER = int
タイプ | サイズ(byte) | 最小値 | 最大値 |
---|---|---|---|
TINYINT | 1 | -128, 0 | 127, 255 |
SMALLINT | 2 | -32768, 0 | 32767, 65535 |
MEDIUMINT | 3 | -8388608, 0 | 8388607, 16777215 |
INT | 4 | -2147483648, 0 | 2147483647, 4294967295 |
BIGINT | 8 | -9223372036854775808, 0 | 9223372036854775807, 18446744073709551615 |
Mysql(MariaDB) では、 INT(4) のように型指定の後に整数値を指定できるが、これは「バイト数」ではなく「表示桁数」である。
しかし、カラムに格納できる値の範囲が制限されたりすることはなく、実際には11桁(INT型の最大値)まで登録できる。
では、 (?) のカッコ内の数字は何なのか?
オプション属性の ZEROFILL を使用すると、足りない桁は 0(ゼロ) が埋め込まれる(ゼロパディングされる)。 (?) のカッコ内の数字は、その際の桁数である。
INT(4) ZEROFILL に 9 という数字を格納すると 0009 と表示されるということ。
数値データ型まとめ(old)
数値データ型まとめその2
幅広いデータ型
公式ドキュメント
boolean
内部的には int(11) となる。
tiny(1) を利用するとよい。
完全に0or1にする場合は、bit(1) を利用する。