📣

TiDB Cloud Serverless が
Starter
に変わりました!このページは自動翻訳されたものです。
原文はこちらからご覧ください。

文字列型

TiDBは、 CHARVARCHARBINARYVARBINARYBLOBTEXTENUMSETを含むすべてのMySQL文字列型をサポートしています。詳細については、 MySQLの文字列型参照してください。

サポートされているタイプ

CHAR

CHARは固定長文字列です。Mは列の長さを文字数(バイト数ではありません)で表します。Mの範囲は0から255です。2とは異なり、 VARCHAR列にデータを挿入する場合、末尾のスペースCHAR切り捨てられます。

[NATIONAL] CHAR[(M)] [CHARACTER SET charset_name] [COLLATE collation_name]

VARCHAR

VARCHARは可変長の文字列です。Mは列の最大長(バイト数ではありません)を文字数で表します。2 VARCHAR最大サイズは65,535バイトを超えることはできません。4 VARCHAR長さは、行の最大長と使用されている文字セットによって決まります。

1文字が占めるスペースは、文字セットによって異なります。次の表は、1文字が消費するバイト数と、各文字セットにおけるVARCHAR列目の長さの範囲を示しています。

文字セット文字あたりのバイト数VARCHARカラムの最大長の範囲
アスキー1(0, 65535)
ラテン11(0, 65535)
バイナリ1(0, 65535)
UTF83(0, 21845]
utf8mb44(0, 16383)
[NATIONAL] VARCHAR(M) [CHARACTER SET charset_name] [COLLATE collation_name]

TEXTタイプ

TEXTは可変長の文字列です。列の最大長は65,535バイトです。オプションのM引数は文字数で、 TEXT列の最適な型を自動的に選択するために使用されます。例えばTEXT(60)指定すると、最大255バイトを保持できるTINYTEXTデータ型が生成され、1文字あたり最大4バイト(4×60=240)の60文字のUTF-8文字列に適合します。M引数の使用は推奨されません。

TEXT[(M)] [CHARACTER SET charset_name] [COLLATE collation_name]

TINYTEXT

TINYTEXT型はTEXTタイプと似ていますが、 TINYTEXTの最大列長が255である点が異なります。

TINYTEXT [CHARACTER SET charset_name] [COLLATE collation_name]

MEDIUMTEXTタイプ

MEDIUMTEXT型はTEXTタイプと似ています。違いは、 MEDIUMTEXTの最大列長が16,777,215である点です。ただし、 txn-entry-size-limitの制限により、TiDBの1行の最大storageサイズはデフォルトで6MiBですが、設定を変更することで120MiBまで増やすことができます。

MEDIUMTEXT [CHARACTER SET charset_name] [COLLATE collation_name]

LONGTEXT

LONGTEXT型はTEXTタイプ型と似ています。違いは、 LONGTEXTの最大列長が 4,294,967,295 である点です。ただし、 txn-entry-size-limitの制限により、TiDB の単一行の最大storageサイズはデフォルトで 6 MiB となり、設定を変更することで 120 MiB まで増やすことができます。

LONGTEXT [CHARACTER SET charset_name] [COLLATE collation_name]

BINARY

BINARY型はCHARと似ています。違いは、 BINARYバイナリバイト文字列を格納することです。

BINARY(M)

VARBINARY

VARBINARY型はVARCHARと似ています。違いは、 VARBINARYバイナリバイト文字列を格納するという点です。

VARBINARY(M)

BLOB

BLOBは大きなバイナリファイルです。M は列の最大長(バイト単位)を表し、範囲は 0 から 65,535 です。

BLOB[(M)]

TINYBLOB

TINYBLOB型はBLOBと似ていますが、 TINYBLOBの最大列長が255である点が異なります。

TINYBLOB

MEDIUMBLOB

MEDIUMBLOB型はBLOBと似ています。違いは、 MEDIUMBLOBの最大列長が16,777,215である点です。ただし、 txn-entry-size-limitの制限により、TiDBの1行の最大storageサイズはデフォルトで6MiBですが、設定を変更することで120MiBまで増やすことができます。

MEDIUMBLOB

LONGBLOB

LONGBLOB型はBLOB型と似ています。違いは、 LONGBLOBの最大列長が 4,294,967,295 である点です。ただし、 txn-entry-size-limitの制限により、TiDB の単一行の最大storageサイズはデフォルトで 6 MiB となり、設定を変更することで 120 MiB まで増やすことができます。

LONGBLOB

ENUM

ENUMは、テーブル作成時に列指定で明示的に列挙された許容値のリストから選択された値を持つ文字列オブジェクトです。構文は次のとおりです。

ENUM('value1','value2',...) [CHARACTER SET charset_name] [COLLATE collation_name] # For example: ENUM('apple', 'orange', 'pear')

ENUMデータ型の値は数値として保存されます。各値は定義順序に従って数値に変換されます。前の例では、各文字列が数値にマッピングされています。

価値番号
ヌルヌル
''0
'りんご'1
'オレンジ'2
''3

詳細についてはMySQLのENUM型参照してください。

SET

SET 、0 個以上の値を持つことができる文字列オブジェクトです。各値は、テーブルの作成時に指定された許可された値のリストから選択する必要があります。構文は次のとおりです。

SET('value1','value2',...) [CHARACTER SET charset_name] [COLLATE collation_name] # For example: SET('1', '2') NOT NULL

この例では、次のいずれかの値が有効になります。

'' '1' '2' '1,2'

TiDBでは、 SET型の値は内部的にInt64に変換されます。各要素の存在は、0または1の2進数で表されますSET('a','b','c','d')と指定された列の場合、各要素は以下の10進数と2進数の値を持ちます。

メンバー小数値バイナリ値
「あ」10001
「b」20010
'c'40100
「d」81000

この場合、 ('a', 'c')の要素は 2 進数では0101になります。

詳細についてはMySQLのSET型参照してください。

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