数値型

TiDB は、以下を含むすべての MySQL 数値型をサポートします。

整数型

TiDB は、 INTEGER / INTTINYINTSMALLINTMEDIUMINTBIGINTを含むすべての MySQL 整数型をサポートします。詳細については、 MySQL の整数データ型の構文参照してください。

次の表にフィールドの説明をまとめます。

構文要素説明
Mタイプの表示幅。オプション。
署名なし署名なし。省略した場合は SIGNED となります。
ゼロフィル数値列に ZEROFILL を指定すると、TiDB は自動的に UNSIGNED 属性を列に追加します。

次の表は、TiDB でサポートされる整数型に必要なstorageと範囲をまとめたものです。

データ・タイプ必要なストレージ (バイト)最小値(符号あり/符号なし)最大値(符号あり/符号なし)
TINYINT1-128 / 0127 / 255
SMALLINT2-32768 / 032767 / 65535
MEDIUMINT3-8388608 / 08388607 / 16777215
INT4-2147483648 / 02147483647 / 4294967295
BIGINT8-9223372036854775808 / 09223372036854775807 / 18446744073709551615

BITタイプ

BIT データ型。 BIT(M) のタイプにより、M ビット値のstorageが可能になります。 M の範囲は 1 ~ 64 で、デフォルト値は 1 です。

BIT[(M)]

BOOLEAN

BOOLEANタイプとそのエイリアスBOOL TINYINT(1)と同等です。値が0の場合、それはFalseとみなされます。それ以外の場合は、 Trueとみなされます。 MySQL と同様に、 True 1で、 False0です。

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 でサポートされる浮動小数点型に必要なstorageをまとめたものです。

データ・タイプ必要なストレージ (バイト)
FLOAT4
FLOAT(p)0 <= p <= 24 の場合は 4、それ以外の場合は 4 です。 25 <= p <= 53 の場合、8
DOUBLE8

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型の列に1234567891.23456789を挿入すると仮定すると、MySQL で対応する値をクエリすると、 1234570001.23457が得られますが、TiDB では1234567901.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小数点以下の桁数
署名なし署名なし。省略した場合は SIGNED となります。
ゼロフィル数値列に ZEROFILL を指定すると、TiDB は自動的に UNSIGNED 属性を列に追加します。

DECIMAL

DECIMALとそのエイリアスNUMERIC 、パックされた「正確な」固定小数点数を格納します。 M は小数点以下の合計桁数 (精度)、D は小数点以下の桁数 (スケール) です。小数点と (負の数の場合) - 符号は M ではカウントされません。D が 0 の場合、値には小数点も小数部もありません。 DECIMAL の最大桁数 (M) は 65 です。サポートされる 10 進数 (D) の最大数は 30 です。D が省略された場合、デフォルトは 0 です。M が省略された場合、デフォルトは 10 です。

DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL] NUMERIC[(M[,D])] [UNSIGNED] [ZEROFILL]

このページは役に立ちましたか?