BLOB型とTEXT型

広告

ここでは文字列型の中でもBLOB型とTEXT型について確認していきます。

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

TINYBLOB
  最長255 (28 - 1) バイト

BLOB[(M)]
  最長65,535 (216 - 1) バイト

MEDIUMBLOB
  最長16,777,215 (224 - 1) バイト

LONGBLOB
  最長4,294,967,295、または4GB (232 - 1) バイト

TEXT型は文字列データを扱うデータ型で格納できるデータのサイズを指定しません。ただ最大長は決まっており、最大長の種類によって次の4つが用意されています。

TINYTEXT
  最長255 (28 - 1) バイト

TEXT[(M)]
  最長65,535 (216 - 1) バイト

MEDIUMTEXT
  最長16,777,215 (224 - 1) バイト
  別名:LONG, LONG VARCHAR

LONGTEXT
  最長4,294,967,295、または4GB (232 - 1) バイト

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

BLOB型はVARBINARY型で格納できるバイト数を指定しなかったものと考えて頂けば結構です。(VARBINARY型については「BINARY型とVARBINARY型」を参照して下さい)。データはバイナリデータとしてそのまま格納されます。

TEXT型はVARCHAR型で格納できるバイト数を指定しなかったものと考えて頂けば結構です。(VARCHAR型については「CHAR型とVARCHAR型」を参照して下さい)。データは文字列データとして格納されます。

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

p6-1

データを格納した後でデータを取得して表示してみます。

p6-2

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

文字セットと照合順序

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

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

またASCII属性/UNICODE属性/BINARY属性なども設定することができます。

TEXT ASCII
TEXT UNICODE
TEXT BINARY

では各属性を設定したテーブルを作成し、テーブル定義を確認してみます。

p6-3

基本的にVARCHAR型と同じように使うことができます。

( Written by Tatsuo Ikura )