数値型
TiDB は、以下を含むすべての MySQL 数値型をサポートしています。
整数型
TiDB は、 INTEGER / INT 、 TINYINT 、 SMALLINT 、 MEDIUMINT 、 BIGINTを含むすべての MySQL 整数型をサポートしています。詳細については、 MySQL の整数データ型構文参照してください。
次の表はフィールドの説明をまとめたものです。
| 構文要素 | 説明 | 
|---|---|
| ま | タイプの表示幅。オプション。 | 
| 未署名 | 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参照してください。
次の表はフィールドの説明をまとめたものです。
| 構文要素 | 説明 | 
|---|---|
| ま | 桁の総数 | 
| だ | 小数点以下の桁数 | 
| 未署名 | 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参照してください。
フィールドの意味:
| 構文要素 | 説明 | 
|---|---|
| ま | 小数点以下の桁数 | 
| だ | 小数点以下の桁数 | 
| 未署名 | 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]