MySQLデータ型
MySQLで定義されたデータフィールドのタイプは、データベースの最適化にとって非常に重要です。数値、日付/時刻、文字列(文字)タイプの3つのカテゴリに大別できます。
数値タイプ
厳密な数値データ型(INTEGER、SMALLINT、DECIMAL、およびNUMERIC)と、近似数値データ型(FLOAT、REAL、およびDOUBLE PRECISION)が含まれます。次の表は、各整数型に必要なストレージと範囲を示しています。
タイプ | サイズ | 範囲(署名済み) | 範囲(符号なし) | 使用する |
---|---|---|---|---|
TINYINT | 1バイト | (-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) | 非常に大きな整数値 |
浮く | 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) | 単精度 浮動小数点値 |
ダブル | 8バイト | (-1.797 693134 862 315 7 E + 308、-2.225 073 858507201 4 E-308)、0、(2.225 073 858507201 4 E-308、1.797 693134 862 315 7 E + 308) | 0、(2.225 073 858 507 201 4 E-308、1.797 693134 862 315 7 E + 308) | 倍精度 浮動小数点値 |
DECまたは 10進数 |
DECIMAL(M、D)の場合、M>Dの場合はM+2、それ以外の場合はD+2です。 | MとDの値に依存します | MとDの値に依存します | 10進値 |
日付と時刻のタイプ
時間値を表す日付と時刻のタイプは、DATETIME、DATE、TIMESTAMP、TIME、およびYEARです。
各時間タイプには、有効な値の範囲と「ゼロ」(NULL)値があります。これは、MySQLが表すことができない正当な値を指定するときに使用されます。TIMESTAMPタイプには、独自の自動更新機能があります。
タイプ | サイズ (バイト) |
範囲 | フォーマット | 使用する |
---|---|---|---|---|
日にち | 3 | 1000-01-01 / 9999-12-31 | YYYY-MM-DD | 日付値 |
時間 | 3 | '-838:59:59' / '838:59:59' | HH:MM:SS | 時間値または期間 |
年 | 1 | 1901/2155 | YYYY | 年の値 |
日付時刻 | 8 | 1000-01-01 00:00:00 / 9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 日付と時刻の混合値 |
タイムスタンプ | 4 | 1970-01-01 00:00:00/2038 終了時刻は 2147483647 秒、 2038-1-19 11:14:07北京時間、2038年1月19日03:14:07 GMT |
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バイト | バイナリ形式の長いテキストデータ |
文章 | 0〜65535バイト | 長いテキストデータ |
MEDIUMBLOB | 0-16777215バイト | バイナリ形式の中程度の長さのテキストデータ |
MEDIUMTEXT | 0-16777215バイト | 中程度の長さのテキストデータ |
LONGBLOB | 0-4 294967295バイト | バイナリ形式の非常に大きなテキストデータ |
LONGTEXT | 0-4 294967295バイト | 非常に大きなテキストデータ |
- CHAR(n)およびVARCHAR(n)の括弧内のnは、バイト数ではなく、格納できる文字数を表します。また、最大長と、末尾のスペースが保持されるかどうかの点でも異なります。保存中または取得中にケース変換は行われません。
- BINARYとVARBINARYは、バイナリ文字列が含まれていることを除いて、CHARとVARCHARに似ています。つまり、文字列ではなくバイト文字列が含まれています。これは、文字セットがなく、並べ替えと比較が列値バイトの数値に基づいていることを意味します。
- BLOBは、可変量のデータを保持できるバイナリラージオブジェクトです。BLOBには、TINYBLOB、BLOB、MEDIUMBLOB、およびLONGBLOBの4つのタイプがあります。それらの違いは、異なるストレージ範囲に対応できることです。
- 有 4 种 TEXT 类型:TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT。对应的这 4 种 BLOB 类型,可存储的最大长度不同,可根据实际情况选择。