English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

MySQL データ型

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などの整数タイプもサポートしています。以下のテーブルは、必要な各整数タイプのストレージと範囲を示します。

タイプサイズ範囲(有符号)範囲(無符号)用途
TINYINT1 byte(-128、127)(0、255)小さい整数値
SMALLINT2 バイト(-32 768、32 767)(0、65 535)大きな整数値
MEDIUMINT3  バイト(-8 388 608、8 388 607)(0、16 777 215)大きな整数値
INTまたはINTEGER4  バイト(-2 147 483 648、2 147 483 647)(0、4 294 967 295)大きな整数値
BIGINT8  バイト(-9,223,372,036,854,775,808、9 223 372 036 854 775 807)(0、18 446 744 073 709 551 615)非常に大きな整数値
FLOAT4  バイト(-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)単精度
浮動小数点数値
DOUBLE8  バイト(-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)双精度
浮動小数点数値
DECIMALDECIMAL(M,D)の場合、M>DならM+2それ以外の場合はD+2MとDの値に依存MとDの値に依存小数値

日付と時間のタイプ

時間値を表す日付と時間のタイプはDATETIME、DATE、TIMESTAMP、TIME、YEARです。

各時間タイプには有効値範囲と"零"値があります。指定された値がMySQLで表現できない場合には、"零"値を使用します。

TIMESTAMPタイプには特別な自動更新機能があり、後で説明します。

タイプサイズ
(バイト)
範囲フォーマット用途
DATE31000-01-01/9999-12-31YYYY-MM-DD日付値
TIME3'-838:59:59'/'838:59:59'HH:MM:SS時間値または持续时间
YEAR11901/2155YYYY年値
DATETIME81000-01-01 00:00:00/9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS複合日付と時間値
TIMESTAMP4

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です。このセクションでは、これらのタイプがどのように動作し、クエリでこれらのタイプを使用する方法について説明します。

タイプサイズ用途
CHAR0-255 バイト定長文字列
VARCHAR0-65535 バイト可変長文字列
TINYBLOB0-255 バイト以下 255 1文字のバイナリ文字列
TINYTEXT0-255 バイト短テキスト文字列
BLOB0-65 535 バイトバイナリ形式の長テキストデータ
TEXT0-65 535 バイト長テキストデータ
MEDIUMBLOB0-16 777 215 バイトバイナリ形式の中程度長テキストデータ
MEDIUMTEXT0-16 777 215 バイト中程度長テキストデータ
LONGBLOB0-4 294 967 295 バイト二進形式の非常に大きなテキストデータ
LONGTEXT0-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 型、最大可保存長さが異なり、実際の状況に応じて選択できます。