MySQL の文字列型
ここでは MySQL の文字列のデータ型についてご説明します。
MySQL の文字列のデータ型
MySQL の基本の文字列のデータ型には次のようなものがあります。
データ型 | 説明 |
---|---|
CHAR(M) | 固定長の文字列型。M には 0 ~ 255 の数字を長さとして指定します。 CHAR(6) のデータ型でカラムや変数を定義して、2 文字を保存した時は右側に 4 文字の空白文字が入ります。 |
VARCHAR(M) | 可変長の文字列型。M には 0 ~ 最大 65,535 までの数字が長さとして指定できますが、テーブルの全カラムの長さの合計が 65,535 なので、実際の最大値は他のカラムの長さに依存します。 CHAR 型と違い、指定した長さより短い長さの文字列を保存しても、空白が右側に入ることはありません。 |
BINARY(M) | 固定長のバイナリー文字列型。CHAR 型と似ていますが、普通の文字列ではなく、バイナリ文字列保持する型です。M の数字はバイト数での長さが入り、省略すると 1 になります。 |
VARBINARY(M) | 可変長のバイナリー文字列型。VARCHAR 型と似ていますが、普通の文字列ではなく、バイナリ文字列を保持する型です。M の数字はバイト数での最大の長さが入ります。 |
BLOB | サイズの大きなバイナリの値を保存するためのデータ型。サイズによって TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB があります。 |
TEXT | サイズの大きな文字列の値を保存するためのデータ型。サイズによって TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT があります。 |
ENUM(値1,値2,...) | 文字列ですが、定義した時に指定した候補の値しか保存できないデータ型です。例えば gender ENUM('F','M') と定義した時には gender カラムには 'F' か 'M' か NULL しか保存できません。 |
SET(値1,値2,...) | ENUM に似ていますが、こちらは候補の中から複数の値が保存可能です。例えば column1 SET('a', 'b', 'c') のように定義した場合は、column1 には 'a,b' や 'a,b,c' のような値も保存できます。 |
全体的に一番よく使われるのは VARCHAR 型で、BLOB と TEXT はファイルや画像などを保存するのによく使われます。
カラムのデータの長さは、基本的に保存する可能性のある最大の長さを考慮した上で、できるだけ小さいものを選ぶのが良いとされています。
以上、MySQL の基本の文字列のデータ型についてご説明しました。