数値型(データ型)のまとめ

最小値 最大値 サイズ
TINYINT -128 127 1バイト
TINYINT UNSIGNED 0 255 1バイト
SMALLINT -32768 32767 2バイト
SMALLINT UNSIGNED 0 65535 2バイト
MEDIUMINT -8388608 8388607 3バイト
MEDIUMINT UNSIGNED 0 16777215 3バイト
INT -2147483648 2147483647 4バイト
INT UNSIGNED 0 4294967295 4バイト
BIGINT -9223372036854775808 9223372036854775807 8バイト
BIGINT UNSIGNED 0 18446744073709551615 8バイト
FLOAT -3.402823466E+38 3.402823466E+38 4バイト
FLOAT UNSIGNED 0 3.402823466E+38 4バイト
DOUBLE -1.7976931348623157E+308 1.7976931348623157E+308 8バイト
DOUBLE UNSIGNED 0 1.7976931348623157E+308 8バイト
  • それぞれ上記のようにUNSIGNEDオプションを指定できます。UNSIGNEDオプションを付けた場合には負の数は使えませんが、正の数は2倍に広がります。(floatとdoubleは別)。
  • それぞれZEROFILLオプションを指定できます。設定すると最上位の桁から0で埋められます。
    (例:INT型の場合は123、INT ZEROFILLの場合は0000000123)。なおZEROFILLオプションを付けると自動的にUNSIGNEDオプションが付きます(負の数では使えない)。
  • TINYINT、SMALLINT、INT、BIGINTは精度を指定できます(例:INT(precision))。
  • FLOATとDOUBLEは精度と位取りを指定できます(例:DOUBLE(precision, scale))。

    引数 説明
    precision 精度。数字全体の有効桁数
    scale 位取り。最大で30までで、precision-2以下である必要がある

    例:123.4 -> 精度4、位取り1

以下詳細です。

M:最大表示サイズを表す。正式な最大表示サイズは 255。
D:小数点型に適用され、小数点以下の桁数を表す。最大値は 30 だが、M-2 より大きくしないようにする。
角かっこ('[' と ']')は、オプションの型指定子の一部であることを表します。
カラムに対して ZEROFILL を指定すると、そのカラムに UNSIGNED 属性が自動で追加されることに注意してください。
整数値の減算で、どちらか一方の整数値が UNSIGNED 型の場合、結果の値は符号なしになります。

属性 説明
TINYINT [(M)] [UNSIGNED] [ZEROFILL] 非常に小さな整数。符号付きの範囲は -128 〜 127。符号なしの範囲は 0 〜 255
BIT , BOOL , BOOLEAN   TINYINT(1) の別名
SMALLINT [(M)] [UNSIGNED] [ZEROFILL] 小さな整数。符号付きの範囲は -32768 〜 32767。符号なしの範囲は 0 〜 65535
MEDIUMINT [(M)] [UNSIGNED] [ZEROFILL] 中間サイズの整数。符号付きの範囲は -8388608 〜 8388607。符号なしの範囲は 0 〜 16777215
INT [(M)] [UNSIGNED] [ZEROFILL] 通常サイズの整数。符号付きの範囲は -2147483648 〜 2147483647。符号なしの範囲は 0 〜 4294967295
INTEGER [(M)] [UNSIGNED] [ZEROFILL] INT の別名
BIGINT [(M)] [UNSIGNED] [ZEROFILL] 大きい整数。符号付きの範囲は -9223372036854775808 〜 9223372036854775807。符号なしの範囲は 0 〜 18446744073709551615
FLOAT(precision) [UNSIGNED] [ZEROFILL] 浮動小数点数。precision は、単精度浮動小数点数の場合は <=24 で、倍精度浮動小数点数の場合は 25 〜 53 の間。これらの型はこのすぐ後に説明する FLOAT 型と DOUBLE 型に類似している。 FLOAT(X) は対応する FLOAT 型および DOUBLE 型と範囲は同じだが、表示サイズと小数部桁数は定義されない
※MySQL バージョン 3.23 では、これは真の浮動小数点値。それ以前の MySQL バージョンでは、FLOAT(precision) の小数部は常に 2 桁になる。
※MySQL の計算はすべて倍精度で行われるため、FLOAT の使用時には予期しない問題が発生する場合があることに注意する。
※この構文は ODBC との互換性を確保するために提供されている
FLOAT [(M,D)] [UNSIGNED] [ZEROFILL] 単精度浮動小数点数。使用可能な値は -3.402823466E+38 〜 -1.175494351E-38、0、および 1.175494351E-38 〜 3.402823466E+38。UNSIGNED を指定した場合、負数は使用できない。M は表示幅で、D は小数部桁数。引数のない FLOAT や、X が 24 以下の FLOAT(X) は、単精度浮動小数点数を表す
DOUBLE [(M,D)] [UNSIGNED] [ZEROFILL] 倍精度浮動小数点数。 使用可能な値は -1.7976931348623157E+308 〜 -2.2250738585072014E-308、0、および 2.2250738585072014E-308 〜 1.7976931348623157E+308。UNSIGNED を指定した場合、負数は使用できない。M は表示幅で、D は小数部桁数。引数のない DOUBLE や、X が 25 以上 53 以下である FLOAT(X) は、倍精度浮動小数点数を表す
DOUBLE PRECISION [(M,D)] [UNSIGNED] [ZEROFILL] DOUBLE の別名
REAL [(M,D)] [UNSIGNED] [ZEROFILL] DOUBLE の別名
DECIMAL [(M[,D])] [UNSIGNED] [ZEROFILL] アンパック浮動小数点数。CHAR カラムのように動作する。``アンパック'' とは、その数値が、各桁に 1 文字ずつ使用して文字列として格納されることを意味する。M では、小数点と、負数に使用される '-' 記号はカウントされない(しかし、これらのためのスペースは確保される)。D が 0 の場合、値は小数点も小数部も持たない。DECIMAL 値の最大範囲は、DOUBLE と同じだが、個々の DECIMAL カラムの実際の範囲は、M と D の値によって制限される。UNSIGNED を指定した場合、負数は使用できない。
D を省略した場合、デフォルトは 0。M を省略した場合、デフォルトは 10
MySQL バージョン 3.23 より前のバージョンでは、M 引数に、符号と小数点に必要なスペースを含める必要がある
DEC [(M[,D])] [UNSIGNED] [ZEROFILL] DECIMAL の別名
NUMERIC [(M[,D])] [UNSIGNED] [ZEROFILL] DECIMAL の別名
FIXED [(M[,D])] [UNSIGNED] [ZEROFILL] DECIMAL の別名
FIXED エイリアスは、他のサーバとの互換性を確保する目的で、バージョン 4.1.0 で追加された

関連記事

スポンサーリンク

const

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る