Latest web development tutorials

MySQLのデータ型

データベースの最適化の分野でのMySQLのデータ型定義は非常に重要です。

数値、日付/時刻および文字列(文字)種類:MySQLは多くの種類は、次の3つのカテゴリに分けることができますサポートしています。


値タイプ

MySQLはすべての標準SQLの数値データ型をサポートしています。

これらのタイプは、厳密な数値データ型(INTEGER、SMALLINT、DECIMALとNUMERIC)だけでなく、おおよその数値データ型(FLOAT、REALとDOUBLE PRECISION)が挙げられます。

キーワードINTはINTEGERのシノニムで、キーワードDECはDECIMALの同義語です。

BITデータ型の店舗では、ビットフィールド値とのMyISAM、MEMORY、InnoDBテーブルとBDBテーブルをサポートしています。

SQL標準として、MySQLはまた、整数型TINYINT、MEDIUMINT、およびBIGINTをサポートしています。 次の表は、必要な各整数型のストレージおよび範囲を示しています。

タイプ サイズ 範囲(符号付き) 範囲(符号なし) 使用
TINYINT 1バイト (-128127) (0255) 小さな整数値
SMALLINT 2バイト (768,32 -32 767) (535 0.65) 整数値
MEDIUMINT 3バイト (-8388 608,8 388 607) (0,16 777215) 整数値
INTまたはINTEGER 4バイト (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 整数値
BIGINT 8バイト (-9,233,372,036,854,775 808,9 223,372,036,854,775 807) (0.18 446,744,073,709,551 615) 最大の整数値
FLOAT 4バイト (-3.402 823 466 E + 38,1.175 494 351 E-38)、0、(1.175 494 351 E-38,3.402 823 466 351 E + 38) 0、(1.175 494 351 E-38,3.402 823 466 E + 38) 単精度浮動小数点値
DOUBLE 8バイト (1.797 693 134 862 315 7 E + 308,2.225 073 858 507 201 4 E-308)、0、(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E + 308) 0、(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E + 308) 倍精度浮動小数点値
DECIMAL DECIMAL(M、D)の、M> D、M + 2は、そうでなければD + 2である場合 これは、MとDの値に依存します これは、MとDの値に依存します 10進値

日付と時刻タイプ

それはDATETIME、DATE、TIMESTAMP、TIME、およびYEARの時間値のタイプの日付と時刻を示しています。

各タイプには、指定された違法のMySQLの値が表現できない場合、「ゼロ」の値を使用して、有効な値の時間と「ゼロ」の値の範囲を持っています。

TIMESTAMP型は、後述する独自の自動更新機能を有しています。

タイプ サイズ
(バイト)
スコープ フォーマット 使用
DATE 3 1000年1月1日/ 9999-12-31 YYYY-MM-DD 日付値
タイム 3 「-838:59:59 '/' 838:59:59 ' HH:MM:SS Time値または期間
YEAR 1 1901/2155 YYYY 年の値
DATETIME 8 1000-01-0100:00:00 / 9999-12-31夜十一時59分59秒 YYYY-MM-DD HH:MM:SS 日付と時刻の値をミキシング
TIMESTAMP 4 いつか00/2037年:1970年1月1日0時 YYYYMMDD HHMMSS 日付と時刻の値、タイムスタンプをミキシング

文字列型

これは、文字列型のCHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM、そしてSETを指します。 このセクションでは、これらのタイプの仕事とどのようにクエリでこれらの型を使用する方法について説明します。

タイプ サイズ 使用
CHAR 0〜255バイト 固定長文字列
VARCHAR 0から65535バイト 可変長文字列
TINYBLOB 0〜255バイト バイナリ文字列ではありません以上255文字以下
TINYTEXT 0〜255バイト 短いテキスト文字列
BLOB 0から65535バイト バイナリ形式で長いテキストデータ
TEXT 0から65535バイト ロングテキストデータ
MEDIUMBLOB 0-16777215バイト 中程度の長さのテキストデータのバイナリ形式
MEDIUMTEXT 0-16777215バイト 中程度の長さのテキストデータ
LONGBLOB 0-4294967295バイト バイナリ形式でグレートテキストデータ
LONGTEXT 0-4294967295バイト 大きなテキストデータ

同様のCHARとVARCHARタイプが、彼らはさまざまな方法を保存して取得します。 末尾のスペースを保持しているか否かを、その最大長は、それも異なります。 大文字小文字の変換せずにストレージや検索処理。

BINARYとVARBINARYタイプは、彼らがバイナリ文字列ではなく非バイナリ文字列を含むことを除き、CHARとVARCHARに似ています。 すなわち、それらはバイト文字列ではなく、文字列が含まれています。 これは、彼らが文字セットを持たないことを意味し、ソートと比較はバイトの数値に基づいています。

BLOBは、可変長のデータを保持できバイナリラージオブジェクトです。 TINYBLOB、BLOB、MEDIUMBLOBとLONGBLOB:4 BLOBのタイプがあります。 彼らは、最大長さの値に対応のみ異なります。

TINYTEXT、TEXT、MEDIUMTEXTとLONGTEXT:4 TEXTの種類があります。 これらは、同じ最大長とストレージ要件を有する、BLOB型の4種類に対応しています。