支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡

  • TOP
  •   
  • コラム
  •   
  • 【基本】MySQLのTEXT型につい

データ型とは

まずデータ型とは、テーブルのカラムにどのようなデータを格納するのかを指定するものです。例えば、顧客管理を行うデータベースであれば、No.や年齢は数値型、名前や住所は文字型というように、あらかじめカラムに入力されるデータの種類を限定します。 上記のようにフィールドにデータ型を指定することにより、誤ったデータ型の入力を防止するなどデータの格納、管理を効率的に行うことが可能です。

文字型

文字型は、文字列を格納することができ、固定長の文字列や可変長の文字列、選択式の文字列などを格納することができます。

文字型の種類は以下の通りです。 ・CHAR(m) データ型:固定長文字型 値の範囲:m(文字数指定):0~255文字 ・VARCHAR(m) データ型:可変長文字型 値の範囲:m(バイト数指定):0~65535バイト ・TYNYTEXT データ型:テキスト型 値の範囲:0~255バイト(固定) ・TEXT データ型:テキスト型 値の範囲:0~65535バイト(固定) ・MEDIUMTEXT データ型:テキスト型 値の範囲:0~16777215バイト(固定) ・LONGTEXT データ型:テキスト型 値の範囲:0~4294967295バイト(固定) 今回はこの中の「TEXT」型についてお話ししていきます。

TEXT型とは

TEXT 型は、文字列のデータを扱うデータ型であることはもちろん、テーブル作成時に格納できるデータサイズの指定をしません。また、最大長は決まっているため、最大長の大きさの違う4種類が用意されており、使い分けが可能です。なお、各データ型とも値にマルチバイト文字が含まれる際は、有効な最大長は少なくなるため注意が必要です。

【TEXT型の種類】

・TINYTEXT 最大長が 、255 (28 − 1) 文字のテキストカラム。(値にマルチバイト文字が含まれる場合は、有効な最大長は少なくなります。) ・TEXT(M) 最大長が 65,535 (216 − 1) 文字のテキストカラム。(値にマルチバイト文字が含まれる場合、有効な最大長は少なくなります。)この型には、オプションの長さを「M」を指定することができます。 ・MEDIUMTEXT 最大長が、 16,777,215 (224 − 1) 文字のテキストカラム。(値にマルチバイト文字が含まれる場合は、有効な最大長は少なくなります。) ・LONGTEXT 最大長が 4,294,967,295 または 4G バイト (232 − 1) 文字のテキストカラム。(値にマルチバイト文字が含まれる場合、有効な最大長は少なくなります。)

他のデータ型との比較

・VARCHAR型とTEXT型 MySQLにおけるTEXT型とVARCHAR型は、SQLで処理する側からすれば、最大文字数を指定するかしないかだけの違いで、それほど大きな違いはありません。ですが、データベースエンジンで比較すると、このデータ型2つは別ものだと言えます。 その中でも大きな違いとしては、データの格納方法が挙げられます。VARCHAR型では、文字列がデータベースに直接保存されます。また、TEXT型の文字列は、データベースとは別に保存され、データベースにはそのポインターのみが保存されます。そのため処理速度等の問題から、短い文字列であればVARCHARを使った方が、効率的に処理できると言えます。

・BLOB型とTEXT型 BLOB型は、「Binary Large OBject」の略です。BLOG型とTEXT型は,VARBINARY型やVARCHAR型で扱うことができないような、巨大なバイナリデータとテキストデータを格納する時に利用されます。 BLOB型は4種類に分かれており、「TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB」と呼ばれるものがあります。

【BLOB型の種類】

・TINYBLOB 最大長が、 255 (28 - 1) 文字のBLOBカラム。 ・BLOB(M) 最大長が、 65,535 (216 - 1) 文字のBLOBカラム。 この型には、オプションの長さを「M」を指定することができます。 ・MEDIUMBLOB 最大長が 、16,777,215 (224 - 1) 文字のBLOBカラム。 ・LONGBLOB 最大長が、 4,294,967,295 または 4G バイト (232 - 1) 文字のBLOBカラム。

BLOB型とTEXT型は,BLOB型はVARBINARY型に,TEXT型はVARCHAR型にそれぞれ非常に良く似ていると言われます。 そのため、短い文字列データであれば、VARBINARY型やVARCHAR型を使用し、それではまかないきれないような大きな文字列データであればVARBINARY型の代わりにBLOG型、VARCHAR型の代わりにTEXT型を使用し、データベースに格納した方がよいと言えるでしょう。

まとめ

いかがでしたでしょうか? 文字列データを扱う文字型のデータ型でも、様々な種類があります。 TEXT型を使用する際は、他の文字型と比較して使用するようにしましょう。