MySQL の数値型

ここでは MySQL の数値のデータ型についてご説明します。

MySQL の整数のデータ型

MySQL の基本の整数のデータ型には次のようなものがあります。

データ型ストレージ
(バイト数)
最小値 ~ 最大値(​符号付き)最小値 ~ 最大値(符号なし)
INT4-2147483648 ~ 21474836470 ~ 4294967295
SMALLINT2-32768 ~ 327670 ~ 65535
TINYINT1-128 ~ 1270 ~ 255
MEDIUMINT3-8388608 ~ 83886070 ~ 16777215
BIGINT8-2^63 ~ 2^63 - 10 ~ 2^64 - 1

デフォルトは符号付きで、定義するときに データ型に続けて UNSIGNED とすると符号なしになります。


MySQL の固定小数点のデータ型

MySQL の固定小数点型のデータ型には DECIALNUMERIC があります。

これらのデータ型は、お金などの精度が重要になってくるデータを保持する時に使われます。

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 の浮動小数点のデータ型には FLOATDOUBLE があります。

ストレージに必要な容量は 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 の数値のデータ型についてご説明しました。

© 2024 MySQL 入門