| タイプ | バイト | 最小値 | 最大値 |
|---|---|---|---|
| (Signed/Unsigned) | (Signed/Unsigned) | ||
| TINYINT | 1 | -128 | 127 |
| 0 | 255 | ||
| SMALLINT | 2 | -32768 | 32767 |
| 0 | 65535 | ||
| MEDIUMINT | 3 | -8388608 | 8388607 |
| 0 | 16777215 | ||
| INT | 4 | -2147483648 | 2147483647 |
| 0 | 4294967295 | ||
| BIGINT | 8 | -9223372036854775808 | 9223372036854775807 |
| 0 | 18446744073709551615 |
Signed: 負の値を許可する(デフォルト)
Unsigned: 負の値を許可しない
| フィールド型 | 指定範囲 | 最大記憶領域 | |
|---|---|---|---|
| CHAR | 固定長文字列 | CHAR(1) - CHAR(255) | 256 bytes |
| VARCHAR | 可変長文字列 | VARCHAR(1) - VARCHAR(255) | 256 bytes |
| フィールド型 | 指定範囲 | 最大記憶領域 | |
|---|---|---|---|
| CHAR | 固定長文字列 | CHAR(1) - CHAR(255) | 256 文字 |
| VARCHAR | 可変長文字列 | VARCHAR(1) - VARCHAR(65535) | 65535 bytes |
※ 5.x から CHAR 型の単位が `文字' になったことに注目。
VARCHAR 型の文字数は利用する文字エンコーディングによって異なる。
| フィールド型 | 最大 | |
|---|---|---|
| TEXT | ラージ文字列 | 65535 bytes |
| MEDIUMTEXT | ラージ文字列 | 1677215 bytes |
| LARGETEXT | ラージ文字列 | 4294967295 bytes |
| BLOB | ラージバイナリ | 65535 bytes |
| MEDIUMBLOB | ラージバイナリ | 1677215 bytes |
| LARGEBLOB | ラージバイナリ | 4294967295 bytes |
BLOB 型と TEXT 型のカラムには、DEFAULT 値は設定できない。
| フィールド型 | 表示フォーマット |
|---|---|
| DATETIME | YYYY-MM-DD HH:MM:SS |
| DATE | YYYY-MM-DD |
| TIME | HH:MM:SS |
| YEAR | YYYY |
| TIMESTAMP(14) | YYYYMMDDHHMMSS |
| TIMESTAMP(12) | YYMMDDHHMMSS |
| TIMESTAMP(10) | YYMMDDHHMM |
| TIMESTAMP(8) | YYYYMMDD |
| TIMESTAMP(6) | YYMMDD |
| TIMESTAMP(4) | YYMM |
| TIMESTAMP(2) | YY |
TIMESTAMP 型は、INSERT または UPDATE 操作に対して現在の日付と時刻が自動的に適用される。
ただし、TIMESTAMP 型が複数ある場合は、最初のカラムのみ適用されるということに注意しなければならない。
レプリケーション等のクラスタ化を考慮するのであれば、TIMESTAMP 型の利用は避けるべき。 日付はアプリケーション側で挿入、更新させる仕様の方がよい。 ※もちろん、MySQLの now() 関数も使用禁止。