数値タイプ
TiDBは、以下を含むすべてのMySQL数値タイプをサポートします。
整数型
TINYINTは、 INTEGER / INT 、およびSMALLINTを含むすべてのMySQL整数型をBIGINTしMEDIUMINT 。詳細については、 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 | 小数点以下の桁数の合計 |
| D | 小数点以下の桁数 |
| 未署名 | 署名なし。省略した場合は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]