English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
MySQLでデータフィールドのタイプを定義することは、データベースの最適化にとって非常に重要です。
MySQLは多くのタイプをサポートしており、大別して三つのカテゴリーに分類できます:数値、日付/時間と文字(文字)型。
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 byte | (-128、127) | (0、255) | 小さい整数値 |
SMALLINT | 2 バイト | (-32 768、32 767) | (0、65 535) | 大きな整数値 |
MEDIUMINT | 3 バイト | (-8 388 608、8 388 607) | (0、16 777 215) | 大きな整数値 |
INTまたはINTEGER | 4 バイト | (-2 147 483 648、2 147 483 647) | (0、4 294 967 295) | 大きな整数値 |
BIGINT | 8 バイト | (-9,223,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の値に依存 | 小数値 |
時間値を表す日付と時間のタイプはDATETIME、DATE、TIMESTAMP、TIME、YEARです。
各時間タイプには有効値範囲と"零"値があります。指定された値がMySQLで表現できない場合には、"零"値を使用します。
TIMESTAMPタイプには特別な自動更新機能があり、後で説明します。
タイプ | サイズ (バイト) | 範囲 | フォーマット | 用途 |
---|---|---|---|---|
DATE | 3 | 1000-01-01/9999-12-31 | YYYY-MM-DD | 日付値 |
TIME | 3 | '-838:59:59'/'838:59:59' | HH:MM:SS | 時間値または持续时间 |
YEAR | 1 | 1901/2155 | YYYY | 年値 |
DATETIME | 8 | 1000-01-01 00:00:00/9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 複合日付と時間値 |
TIMESTAMP | 4 | 1970-01-01 00:00:00/2038 終了時間は第 2147483647 秒、北京時間 2038-1-19 11:14:07、グリニッジ標準時 2038年1月19日 朝 03:14:07 | YYYYMMDD HHMMSS | 複合日付と時間値、タイムスタンプ |
文字列タイプはCHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUMおよびSETです。このセクションでは、これらのタイプがどのように動作し、クエリでこれらのタイプを使用する方法について説明します。
タイプ | サイズ | 用途 |
---|---|---|
CHAR | 0-255 バイト | 定長文字列 |
VARCHAR | 0-65535 バイト | 可変長文字列 |
TINYBLOB | 0-255 バイト | 以下 255 1文字のバイナリ文字列 |
TINYTEXT | 0-255 バイト | 短テキスト文字列 |
BLOB | 0-65 535 バイト | バイナリ形式の長テキストデータ |
TEXT | 0-65 535 バイト | 長テキストデータ |
MEDIUMBLOB | 0-16 777 215 バイト | バイナリ形式の中程度長テキストデータ |
MEDIUMTEXT | 0-16 777 215 バイト | 中程度長テキストデータ |
LONGBLOB | 0-4 294 967 295 バイト | 二進形式の非常に大きなテキストデータ |
LONGTEXT | 0-4 294 967 295 バイト | 非常に大きなテキストデータ |
注意:char(n) と varchar(n) で括弧の中の n は文字の数を表し、バイトの数を表しません。例えば、30) で保存できます 30 つの文字。
CHAR と VARCHAR 型は似ていますが、保存と検索の方法が異なります。最大長さや末尾のスペースが保持されるかどうかなど、いくつかの点で異なります。ストレージや検索の過程で大文字と小文字の変換は行いません。
BINARY と VARBINARY は CHAR と VARCHAR に似ていますが、それらは非二進文字列ではなく二進文字列を含んでいます。つまり、それらはバイト文字列を含んでおり、文字列を含んでいません。これは、それらに文字セットがないことを示し、ソートと比較は列値バイトの数値値に基づいて行われます。
BLOB は二進大オブジェクトであり、可変量のデータを容纳できます。以下の 4 種類の BLOB 型:TINYBLOB、BLOB、MEDIUMBLOB そして LONGBLOB。それらの違いは可保存範囲が異なることです。
有 4 種類の TEXT 型:TINYTEXT、TEXT、MEDIUMTEXT そして LONGTEXT。対応する 4 種類の BLOB 型、最大可保存長さが異なり、実際の状況に応じて選択できます。