データ型とは
データベースのテーブル作成する時にカラムを追加しますが、データがどのような種類かを定義する必要があります。 このデータの種類をデータ型といい、データ型の種類はデータベースによって異なります。
MySQL のデータ型は以下のようなものがあります。
整数型
整数型は整数を格納するのに利用し、小数は利用できません。
データ型 | 範囲(符号あり) |
---|---|
TINYINT | -128 から 127 |
SMALLINT | -32768 から 32767 |
MEDIUMINT | -8388608 から 8388607 |
INT | -2147483648 から 2147483647 |
BIGINT | -9223372036854775808 から 9223372036854775807 |
UNSIGNED
UNSIGNED は数値の符号なし(0と正の数) を指定します。 負の数の領域は正の数にプラスされ、数値の範囲が広がります。
浮動小数点型
浮動小数点型は、小数でデータを格納します。
データ型 | 範囲(符号あり) |
---|---|
FLOAT | -3.402823466E+38 から -1.175494351E-38 |
DOUBLE | -1.7976931348623157E+308 から -2.2250738585072014E-308 |
文字列型
文字列型は、文字列の長さを指定して格納します。
データ型 | バイト |
---|---|
CHAR | 固定長文字列:0 から 255 |
VARCHAR | 可変長文字列:0 から 65,535 |
文字列型は主に VARCHAR を利用することが多く、VARCHAR(255) のように ( ) の中にバイト数を定義します。
テキスト型
テキスト型は、VARCHAR より大きな文字を格納するのに利用します。
データ型 | 種別 | 最長バイト |
---|---|---|
TINYTEXT | テキストデータ | 255 |
TEXT | テキストデータ | 65,535 |
MEDIUMTEXT | テキストデータ | 16,777,215 |
LONGTEXT | テキストデータ | 4,294,967,295 |
BLOB型
BLOB型は、Binary Large OBject の略で、テキスト型に似ていますが、バイナリ文字列として格納します。
データ型 | 種別 | 最長バイト |
---|---|---|
TINYBLOB | バイナリ文字列 | 255 |
BLOB | バイナリ文字列 | 65,535 |
MEDIUMBLOB | バイナリ文字列 | 16,777,215 |
LONGBLOB | バイナリ文字列 | 4,294,967,295 |
BINARY型
BINARY型は、バイナリデータを格納します。
データ型 | 種別 | 最長バイト |
---|---|---|
BINARY | 固定長バイナリバイト文字列 | 255 |
VARBINARY | 可変長バイナリバイト文字列 | 65,535 |
日付・時刻型
日付・時刻をフォーマットに従って保存します。
データ型 | フォーマット |
---|---|
DATE | YYYY-MM-DD |
DATETIME | YYYY-MM-DD HH:MM:SS[.fraction] |
TIMESTAMP | 1970-01-01 00:00:00 UTC |
TIME | -838:59:59.000000 から 838:59:59.000000 |
YEAR | YYYY または YY |
TIMESTAMP の 2038年問題
TIMESTAMP は 2038年問題があり、DATETIME を使った方がよいとされていますが、TIMESTAMP で利用されているシステムは数多くあります。