BLOB型とTEXT型

MySQL で利用可能なデータ型の中で文字列型の BLOB 型と TEXT 型の使い方について解説します。

(Last modified: )

BLOB型とTEXT型について

BLOG 型及び TEXT 型はそれぞれ巨大なバイナリデータとテキストデータを格納する時に利用されます。

BLOB 型はバイナリデータを扱うデータ型で格納できるデータのサイズを指定しません。画像ファイルなどを格納する場合などにも使われます。ただ最大長は決まっており、最大長の種類によって次の 4 つが用意されています。

TINYBLOB
最大長が 255 (2^8 - 1) バイト。

BLOB
最大長が 65,535 (2^16 - 1) バイト。

MEDIUMBLOB
最大長が 16,777,215 (2^24 - 1) バイト。

LONGBLOB
最大長が 4,294,967,295 または 4G バイト (2^32 - 1) バイト。

各 BLOB 型はでは、データはバイナリデータとしてそのまま格納されます。

TEXT 型は文字列データを扱うデータ型で格納できるデータのサイズを指定しません。ただ最大長は決まっており、最大長の種類によって次の 4 つが用意されています。なお各データ型とも値にマルチバイト文字が含まれる場合、有効な最大長は少なくなります。

TINYTEXT [CHARACTER SET charset_name] [COLLATE collation_name]
最大長が 255 (2^8 - 1) 文字

TEXT [CHARACTER SET charset_name] [COLLATE collation_name]
最大長が 65,535 (2^16 - 1) 文字。

MEDIUMTEXT [CHARACTER SET charset_name] [COLLATE collation_name]
最大長が 16,777,215 (2^24 - 1) 文字。

LONGTEXT [CHARACTER SET charset_name] [COLLATE collation_name]
最大長が 4,294,967,295 または 4G バイト (2^32 - 1) 文字。

各 TEXT 型ではデータは文字列データとして格納されます。

-- --

では BLOB 型のカラムと TEXT 型のカラムを持つテーブルを作成してみます。

create table strtest(str1 blob, str2 text);

BLOB型とTEXT型について(1)

次のようなデータを追加します。

insert into strtest values(0x48656C6C6F, 'Hello');

BLOB型とTEXT型について(2)

データを追加した後でテーブルのデータを取得してみます。

select * from strtest;

BLOB型とTEXT型について(3)

巨大なデータを取り扱えるという点を除けば VARBINARY 型と VARCHAR 型と同じように扱えます。

文字セットと照合順序

TEXT 型は文字セットと照合順序を指定することができます。使い方は次の通りです。

TEXT [CHARACTER SET 文字セット] [COLLATE 照合順序]

使用可能な文字セットや照合順序など使い方は VARCHAR 型と同じです。詳しくは「文字セットと照合順序を指定する」を参照されてください。

-- --

MySQL で利用可能なデータ型の中で文字列型の LOB 型と TEXT 型の使い方について解説しました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。