- Home ›
- MySQLの使い方 ›
- MySQLのデータ型
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);
次のようなデータを追加します。
insert into strtest values(0x48656C6C6F, 'Hello');
データを追加した後でテーブルのデータを取得してみます。
select * from strtest;
巨大なデータを取り扱えるという点を除けば VARBINARY 型と VARCHAR 型と同じように扱えます。
文字セットと照合順序
TEXT 型は文字セットと照合順序を指定することができます。使い方は次の通りです。
TEXT [CHARACTER SET 文字セット] [COLLATE 照合順序]
使用可能な文字セットや照合順序など使い方は VARCHAR 型と同じです。詳しくは「文字セットと照合順序を指定する」を参照されてください。
-- --
MySQL で利用可能なデータ型の中で文字列型の LOB 型と TEXT 型の使い方について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。