MySQL の数値型
ここでは MySQL の数値のデータ型についてご説明します。
MySQL の整数のデータ型
MySQL の基本の整数のデータ型には次のようなものがあります。
データ型 | ストレージ (バイト数) | 最小値 ~ 最大値(符号付き) | 最小値 ~ 最大値(符号なし) |
---|---|---|---|
INT | 4 | -2147483648 ~ 2147483647 | 0 ~ 4294967295 |
SMALLINT | 2 | -32768 ~ 32767 | 0 ~ 65535 |
TINYINT | 1 | -128 ~ 127 | 0 ~ 255 |
MEDIUMINT | 3 | -8388608 ~ 8388607 | 0 ~ 16777215 |
BIGINT | 8 | -2^63 ~ 2^63 - 1 | 0 ~ 2^64 - 1 |
デフォルトは符号付きで、定義するときに データ型に続けて UNSIGNED とすると符号なしになります。
MySQL の固定小数点のデータ型
MySQL の固定小数点型のデータ型には DECIAL、NUMERIC があります。
これらのデータ型は、お金などの精度が重要になってくるデータを保持する時に使われます。
NUMERIC は DECIAL として実装されるので、DECIMAL と同じです。
DECIMAL を定義する時には DECIAL(M, D) のように定義します。 M が小数点を除く全体の桁数で、D が小数点以下が使う桁数です。
例えば、 DECIMAL(6,2) と定義した場合、値は -9999.99 から 9999.99 までの値を保持できます。
D(小数点以下が使う桁数)を省略すると、デフォルト値は 0 になります。
DECIMAL とだけ定義すると M(小数点を除く全体の桁数)のデフォルト値は 10 なので、DECIMAL(10, 0) と同等になります。
M に指定できる最大値は 65 で、D に指定できる最大値は 30 です。
MySQL の浮動小数点のデータ型
MySQL の浮動小数点のデータ型には FLOAT、DOUBLE があります。
ストレージに必要な容量は FLOAT が 4 バイトで、DOUBLE が 8 バイトです。
FLOAT(p) のように定義した場合は、p が 0 ~ 23 の時は 4 バイト単精度 の FLOAT 型に、24 ~ 53 の時は 8 バイト倍精度の DOUBLE 型になります。
FLOAT(M,D) と DOUBLE(M,D) のフォーマットはサポートされなくなるので、使わないようにしましょう。
MySQL の BOOL 型 と BIT 型
BOOL 型は真偽を示すデータを保持するのに使われます。
実際は TINYINT(1) が使われていて、値が 0 の時は false、0 以外の時は true になります。
BOOL 型には 0, 1 以外の数字も入りますが、MySQL のブーリアンリテラルの TRUE と FALSE は 1 と 0 なので、0 以外の時は true であっても、true を示す値は 1 を使っておくのが混乱しなくて良いと思います。
BOOL 型の変数やカラムに値を代入する時は、MySQL のブーリアンリテラルの TRUE と FALSE を使うのがおすすめです。
BIT 型はビットのデータを保持するのに使われます。
BIT(M) のように定義します。 M はビットの長さで、1 ~ 64 の数字が指定できます。
M は省略可能で、省略するとデフォルトで 1 になります。
以上、MySQL の数値のデータ型についてご説明しました。