数値型
TiDB は、以下を含むすべての MySQL 数値型をサポートしています。
整数型
TiDB は、 INTEGER
/ INT
、 TINYINT
、 SMALLINT
、 MEDIUMINT
、およびBIGINT
を含むすべての MySQL 整数型をサポートしています。詳細については、 MySQL の整数データ型の構文を参照してください。
次の表は、フィールドの説明をまとめたものです。
構文要素 | 説明 |
---|---|
M | タイプの表示幅。オプション。 |
未署名 | 未署名。省略した場合は SIGNED です。 |
ゼロフィル | 数値列に ZEROFILL を指定すると、TiDB は UNSIGNED 属性を列に自動的に追加します。 |
次の表は、TiDB でサポートされている整数型に必要なストレージと範囲をまとめたものです。
データ・タイプ | 必要なストレージ (バイト) | 最小値 (符号付き/符号なし) | 最大値 (符号あり/符号なし) |
---|---|---|---|
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 ビット値の格納を有効にします。 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 | 小数点以下の桁数 |
未署名 | 未署名。省略した場合は SIGNED です。 |
ゼロフィル | 数値列に ZEROFILL を指定すると、TiDB は UNSIGNED 属性を列に自動的に追加します。 |
次の表は、TiDB でサポートされる浮動小数点型に必要なストレージをまとめたものです。
データ・タイプ | 必要なストレージ (バイト) |
---|---|
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 の場合、データ型はDOUBLE
になり、M または D の値はありません。結果の列の範囲は、単精度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 は、DECIMAL や NUMERIC を含むすべての MySQL 浮動小数点型をサポートしています。詳細については、 固定小数点型 (正確な値) - MySQL の DECIMAL、NUMERIC .
フィールドの意味:
構文要素 | 説明 |
---|---|
M | 10 進数の合計桁数 |
D | 小数点以下の桁数 |
未署名 | 未署名。省略した場合は SIGNED です。 |
ゼロフィル | 数値列に ZEROFILL を指定すると、TiDB は UNSIGNED 属性を列に自動的に追加します。 |
DECIMAL
型
DECIMAL
とそのエイリアスNUMERIC
は、パックされた「正確な」固定小数点数を格納します。 M は 10 進数の合計桁数 (精度)、D は小数点以下の桁数 (位取り) です。小数点と (負の数の場合) - 記号は M ではカウントされません。D が 0 の場合、値には小数点または小数部分がありません。 DECIMAL の最大桁数 (M) は 65 です。サポートされている小数 (D) の最大数は 30 です。D が省略された場合、デフォルトは 0 です。M が省略された場合、デフォルトは 10 です。
DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]
NUMERIC[(M[,D])] [UNSIGNED] [ZEROFILL]