重要
このページは英語版のページを機械翻訳しています。原文はこちらからご覧ください。

文字列型

VARCHARは、 CHARTEXT BINARYENUMすべてのBLOB文字列型をSETVARBINARY 。詳細については、 MySQLの文字列タイプを参照してください。

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

CHARタイプ

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

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

VARCHARタイプ

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

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

キャラクターセット文字あたりのバイト数最大VARCHARカラムの長さの範囲
アスキー1(0、65535]
latin11(0、65535]
バイナリ1(0、65535]
utf83(0、21845]
utf8mb44(0、16383]
[NATIONAL] VARCHAR(M) [CHARACTER SET charset_name] [COLLATE collation_name]

TEXTタイプ

TEXTは可変長の文字列です。 Mは、0から65,535の範囲の最大列長を文字数で表します。最大行長と使用されている文字セットによって、 TEXTの長さが決まります。

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であるということです。

MEDIUMTEXT [CHARACTER SET charset_name] [COLLATE collation_name]

LONGTEXTタイプ

LONGTEXTタイプはTEXTタイプに似ています。違いは、 LONGTEXTの最大列長が4,294,967,295であるということです。ただし、 TiDBの単一列の制限のため、TiDBの単一列の最大ストレージサイズは6MBです。

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であるということです。

MEDIUMBLOB

LONGBLOBタイプ

LONGBLOBタイプはBLOBタイプに似ています。違いは、 LONGBLOBの最大列長が4,294,967,295であるということです。ただし、 TiDBの単一列の制限のため、TiDBの単一列の最大ストレージサイズは6MBです。

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のバイナリを使用して表されますSET('a','b','c','d')として指定された列の場合、メンバーには次の10進値と2進値があります。

メンバー10進値バイナリ値
「a」10001
'b'20010
'c'40100
'd'81000

この場合、 ('a', 'c')の要素の場合、バイナリでは0101になります。

詳細については、 MySQLのSETタイプを参照してください。