リレーショナルデータベース(3):MySQLのデータ型

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 类型,可存储的最大长度不同,可根据实际情况选择。

おすすめ

転載: blog.csdn.net/weixin_43145427/article/details/124097514