Mysqli-data-types

提供:Dev Guides
移動先:案内検索

MySQLi-データ型

テーブルのフィールドを適切に定義することは、データベースの全体的な最適化にとって重要です。 本当に使用する必要があるフィールドのタイプとサイズのみを使用する必要があります。 2文字しか使用しないことがわかっている場合は、フィールドを10文字幅として定義しないでください。 これらのタイプのフィールド(または列)は、それらのフィールドに格納する*データのタイプ*の後に、データタイプとも呼ばれます。

MySQLiは、数値、日付、時刻、文字列の3つのカテゴリに分類されたさまざまなデータ型を使用します。

数値データ型

MySQLiはすべての標準ANSI SQL数値データ型を使用するため、別のデータベースシステムからMySQLiにアクセスする場合、これらの定義はおなじみのように見えます。 次のリストは、一般的な数値データ型とその説明を示しています-

  • INT -符号付きまたは符号なしの通常サイズの整数。 署名されている場合、許容範囲は-2147483648〜2147483647です。 符号なしの場合、許容範囲は0〜4294967295です。 最大11桁の幅を指定できます。
  • TINYINT -符号付きまたは符号なしの非常に小さな整数。 署名されている場合、許容範囲は-128〜127です。 符号なしの場合、許容範囲は0〜255です。 最大4桁の幅を指定できます。
  • SMALLINT -符号付きまたは符号なしの小さな整数。 署名されている場合、許容範囲は-32768〜32767です。 符号なしの場合、許容範囲は0〜65535です。 最大5桁の幅を指定できます。
  • MEDIUMINT -符号付きまたは符号なしの中間サイズの整数。 署名されている場合、許容範囲は-8388608〜8388607です。 符号なしの場合、許容範囲は0〜16777215です。 最大9桁の幅を指定できます。
  • BIGINT -符号付きまたは符号なしの大きな整数。 署名されている場合、許容範囲は-9223372036854775808〜9223372036854775807です。 符号なしの場合、許容範囲は0〜18446744073709551615です。 最大20桁の幅を指定できます。
  • * FLOAT(M、D)*-符号なしにできない浮動小数点数。 表示の長さ(M)と小数の数(D)を定義できます。 これは必須ではなく、デフォルトで10,2になります。2は小数の数、10は総桁数(小数を含む)です。 FLOATの場合、10進数の精度は24桁になります。
  • * DOUBLE(M、D)*-符号なしにできない倍精度の浮動小数点数。 表示の長さ(M)と小数の数(D)を定義できます。 これは必須ではなく、デフォルトの16,4になります。4は小数の数です。 10進数の精度は、DOUBLEの場合は53桁になります。 REALはDOUBLEの同義語です。
  • * DECIMAL(M、D)*-符号なしにできないパックされていない浮動小数点数。 パックされていない10進数では、各10進数は1バイトに対応します。 表示の長さ(M)と小数の数(D)を定義する必要があります。 NUMERICはDECIMALの同義語です。

日付と時刻のタイプ

MySQLの日付と時刻のデータ型は-

  • DATE -1000-01-01から9999-12-31までのYYYY-MM-DD形式の日付。 たとえば、1973年12月30日は1973-12-30として保存されます。
  • DATETIME -1000-01-01 00:00:00から9999-12-31 23:59:59までのYYYY-MM-DD HH:MM:SS形式の日付と時刻の組み合わせ。 たとえば、1973年12月30日の午後3時30分は、1973-12-30 15:30:00として保存されます。
  • TIMESTAMP -1970年1月1日午前0時から2037年のいずれかの時点までのタイムスタンプ。 これは、数字の間にハイフンがない場合のみ、以前のDATETIME形式のように見えます。 1973年12月30日の午後3時30分は、19731230153000(YYYYMMDDHHMMSS)として保存されます。
  • TIME -HH:MM:SS形式で時刻を保存します。
  • * YEAR(M)*-2桁または4桁の形式で年を格納します。 長さが2に指定されている場合(YEAR(2)など)、YEARは1970から2069(70から69)になります。 長さを4に指定した場合、YEARは1901〜2155になります。 デフォルトの長さは4です。

文字列型

数値型と日付型は楽しいですが、保存するほとんどのデータは文字列形式になります。 このリストは、MySQLiの一般的な文字列データ型について説明しています。

  • * CHAR(M)*-1〜255文字の固定長文字列(CHAR(5)など)。保存時に指定された長さまで右にスペースが埋め込まれます。 長さを定義する必要はありませんが、デフォルトは1です。
  • * VARCHAR(M)*-長さが1〜255文字の可変長文字列。たとえば、VARCHAR(25)。 VARCHARフィールドを作成するときは、長さを定義する必要があります。
  • BLOBまたはTEXT -最大長が65535文字のフィールド。 BLOBは「バイナリラージオブジェクト」であり、画像やその他の種類のファイルなど、大量のバイナリデータを格納するために使用されます。 TEXTとして定義されたフィールドには、大量のデータも保持されます。 2つの違いは、格納されたデータの並べ替えと比較ではBLOBで大文字と小文字が区別され、TEXTフィールドでは大文字と小文字が区別されないことです。 BLOBまたはTEXTでは長さを指定しません。
  • TINYBLOBまたはTINYTEXT -最大255文字のBLOBまたはTEXT列。 TINYBLOBまたはTINYTEXTでは長さを指定しません。
  • MEDIUMBLOBまたはMEDIUMTEXT -最大長16777215文字のBLOBまたはTEXT列。 MEDIUMBLOBまたはMEDIUMTEXTでは長さを指定しません。
  • LONGBLOBまたはLONG​​TEXT -最大長が4294967295文字のBLOBまたはTEXT列。 LONGBLOBまたはLONG​​TEXTでは長さを指定しません。
  • ENUM -リストの凝った用語である列挙。 ENUMを定義するときは、値を選択する必要がある(またはNULLにすることができる)アイテムのリストを作成しています。 たとえば、フィールドに「A」、「B」、または「C」を含める場合、ENUMをENUM(「A」、「B」、「C」)およびそれらの値(またはNULL)として定義しますそのフィールドにデータを入力できます。