数値型
TiDB は、以下を含むすべての MySQL 数値型をサポートしています。
整数型
TiDBは、 INTEGER
/ INT
、 TINYINT
、 SMALLINT
、 MEDIUMINT
、 BIGINT
を含むすべてのMySQL整数型をサポートしています。詳細については、 MySQLの整数データ型の構文参照してください。
次の表はフィールドの説明をまとめたものです。
構文要素 | 説明 |
---|---|
M | タイプの表示幅。オプション。 |
署名なし | UNSIGNED。省略した場合はSIGNEDになります。 |
ゼロフィル | 数値列に ZEROFILL を指定すると、TiDB は列に UNSIGNED 属性を自動的に追加します。 |
次の表は、TiDB でサポートされる整数型に必要なstorageと範囲をまとめたものです。
データ型 | 必要なストレージ容量(バイト) | 最小値(符号付き/符号なし) | 最大値(符号付き/符号なし) |
---|---|---|---|
TINYINT | 1 | -128 / 0 | 127 / 255 |
SMALLINT | 2 | -32768 / 0 | 32767 / 65535 |
MEDIUMINT | 3 | -8388608 / 0 | 8388607 / 16777215 |
INT | 4 | -2147483648 / 0 | 2147483647 / 4294967295 |
BIGINT | 8 | -9223372036854775808 / 0 | 9223372036854775807 / 18446744073709551615 |
BIT
タイプ
BITデータ型。BIT(M)型はMビット値をstorageします。Mは1から64までの範囲で指定でき、デフォルト値は1です。
BIT[(M)]
BOOLEAN
型
BOOLEAN
型とそのエイリアスBOOL
TINYINT(1)
と同等です。値が0
場合はFalse
、それ以外の場合はTrue
とみなされます。MySQLと同様に、 True
は1
、 False
は0
です。
BOOLEAN
TINYINT
型
TINYINT
データ型は、[-128, 127] の範囲の符号付き値と [0, 255] の範囲の符号なし値を格納します。
TINYINT[(M)] [UNSIGNED] [ZEROFILL]
SMALLINT
型
SMALLINT
データ型は、[-32768、32767]の範囲の符号付き値と、[0、65535]の範囲の符号なし値を格納します。
SMALLINT[(M)] [UNSIGNED] [ZEROFILL]
MEDIUMINT
タイプ
MEDIUMINT
データ型は、[-8388608、8388607]の範囲の符号付き値と、[0、16777215]の範囲の符号なし値を格納します。
MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]
INTEGER
型
INTEGER
型とそのエイリアスINT
は、[-2147483648、2147483647] の範囲の符号付き値と、[0、4294967295] の範囲の符号なし値を格納します。
INT[(M)] [UNSIGNED] [ZEROFILL]
別の形式を使用することもできます:
INTEGER[(M)] [UNSIGNED] [ZEROFILL]
BIGINT
型
BIGINT
データ型は、[-9223372036854775808、9223372036854775807]の範囲の符号付き値と、[0、18446744073709551615]の範囲の符号なし値を格納します。
BIGINT[(M)] [UNSIGNED] [ZEROFILL]
浮動小数点型
TiDBは、 FLOAT
、 DOUBLE
含むすべてのMySQL浮動小数点型をサポートしています。詳細については、 浮動小数点型(近似値) - MySQL の FLOAT、DOUBLE参照してください。
次の表はフィールドの説明をまとめたものです。
構文要素 | 説明 |
---|---|
M | 桁の総数 |
D | 小数点以下の桁数 |
署名なし | UNSIGNED。省略した場合はSIGNEDになります。 |
ゼロフィル | 数値列に ZEROFILL を指定すると、TiDB は列に UNSIGNED 属性を自動的に追加します。 |
次の表は、TiDB でサポートされる浮動小数点型に必要なstorageをまとめたものです。
データ型 | 必要なストレージ容量(バイト) |
---|---|
FLOAT | 4 |
FLOAT(p) | 0 <= p <= 24の場合は4、25 <= p <= 53の場合は8 |
DOUBLE | 8 |
FLOAT
型
FLOAT
型は単精度浮動小数点数を保存します。許容値は-3.402823466E+38~-1.175494351E-38、0、1.175494351E-38~3.402823466E+38です。これらはIEEE標準に基づく理論上の制限です。実際の範囲は、ハードウェアやオペレーティングシステムによって若干狭くなる場合があります。
FLOAT(p)
必要なビット精度を表すために使用できます。TiDB はこの値を使用して、結果のデータ型にFLOAT
使用するかDOUBLE
使用するかを決定します。p が 0 から 24 の場合、データ型は M 値または D 値を持たない FLOAT になります。p が 25 から 53 の場合、データ型は M 値または D 値を持たないDOUBLE
になります。結果の列の範囲は、単精度FLOAT
または倍精度DOUBLE
データ型と同じです。
FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]
FLOAT(p) [UNSIGNED] [ZEROFILL]
注記:
MySQLと同様に、
FLOAT
データ型は近似値を保存します。通貨などの値の場合は、代わりにDECIMAL
データ型を使用することをお勧めします。TiDBでは、
FLOAT
データ型のデフォルトの精度は8桁ですが、MySQLでは6桁です。例えば、TiDBとMySQLの両方でFLOAT
型の列に123456789
と1.23456789
挿入した場合、MySQLで対応する値をクエリすると、123457000
と1.23457
返されますが、TiDBでは123456790
と1.2345679
返されます。
DOUBLE
型
DOUBLE
型とそのエイリアスDOUBLE PRECISION
は、倍精度浮動小数点数を格納します。許容値は -1.7976931348623157E+308 ~ -2.2250738585072014E-308、0、および 2.2250738585072014E-308 ~ 1.7976931348623157E+308 です。これらは IEEE 標準に基づく理論上の制限です。実際の範囲は、ハードウェアやオペレーティングシステムによって若干狭くなる場合があります。
DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL]
DOUBLE PRECISION [(M,D)] [UNSIGNED] [ZEROFILL], REAL[(M,D)] [UNSIGNED] [ZEROFILL]
注記:
TiDBが科学表記法で表現された倍精度浮動小数点数を
CHAR
型に変換すると、MySQLでの表示と矛盾する結果が表示されます。詳細はキャスト関数と演算子参照してください。
固定小数点型
TiDBは、DECIMALやNUMERICを含むすべてのMySQL浮動小数点型をサポートしています。詳細については、 固定小数点型(正確な値) - MySQL の DECIMAL、NUMERIC 。
フィールドの意味:
構文要素 | 説明 |
---|---|
M | 小数点以下の桁数 |
D | 小数点以下の桁数 |
署名なし | UNSIGNED。省略した場合はSIGNEDになります。 |
ゼロフィル | 数値列に ZEROFILL を指定すると、TiDB は列に UNSIGNED 属性を自動的に追加します。 |
DECIMAL
型
DECIMAL
とそのエイリアスNUMERIC
は、パックされた「正確な」固定小数点数を格納します。M は小数点以下の桁数(精度)、D は小数点以下の桁数(スケール)です。小数点と(負数の場合は)- 記号は M には含まれません。D が 0 の場合、値には小数点も小数部もありません。DECIMAL の最大桁数(M)は 65 です。サポートされる小数点の最大桁数(D)は 30 です。D が省略された場合、デフォルトは 0 です。M が省略された場合、デフォルトは 10 です。
DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]
NUMERIC[(M[,D])] [UNSIGNED] [ZEROFILL]