データ型とは

データベースのテーブル作成する時にカラムを追加しますが、データがどのような種類かを定義する必要があります。 このデータの種類をデータ型といい、データ型の種類はデータベースによって異なります。

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 で利用されているシステムは数多くあります。