MySQLのデータ型


MySQL データ型

MySQL で定義されるデータ フィールドの型は、データベースの最適化にとって非常に重要です。

MySQL は複数の型をサポートしており、それらは数値型、日付/時刻型、文字列 (文字) 型の 3 つのカテゴリに大別できます。

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 もサポートします。次の表は、各整数型に必要なストレージと範囲を示しています。

SMALLINTMEDIUMINTINT または INTEGER BIGINTFLOAT浮動小数点値
タイプサイズ範囲(符号付き)範囲(符号なし)使用
TINYINT1バイト(-128, 127) 0, 25 5) 小さい整数値
2バイト(-32 768, 32 767)(0, 65 535)大きい整数値
3テス (-8 388 608, 8 388 607) (0, 16 777 215) 大きい整数値
4 バイト (-2 147 483 648, 2 7 483 64 7) (0 ,4 294 967 295)大きな整数値
8バイト(-9,223,372,036,854,775,808,9 223 372 036 854 77 5 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 82 3 466 1 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 50 7 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)倍精度
浮動小数点値
10進数DECIMAL(M,D)の場合、M>Dの場合はM+2、それ以外の場合はD+2ですMとDの値に依存しますMとDの値に依存します10進数値

日付と時刻の型

時刻の値を表す日付と時刻の型は、DATETIME、DATE、TIMESTAMP、TIME、YEAR です。

各時間​​タイプには有効な値の範囲と「ゼロ」値があり、MySQL が表現できない不正な値を指定する場合に使用されます。

TIMESTAMP型には後述する独自の自動更新機能があります。

1901/21551000-01-01 00:00:00/9999-12-31 23:59:592038-1-19 11:14:07YYYYMMDD HHMMSS日付と時刻の値、タイムスタンプが混在しています


文字列型

文字列型とは、CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM、SETを指します。このセクションでは、これらの型がどのように機能するか、およびクエリでの使用方法について説明します。



タイプサイズ
(バイト)
範囲形式使用
DATE31000-01-01/9999-12- 31 YYYY-MM-DD date値
mime3'-838:59:59 '/' 838:59:59'HH:mm:sstime値または期間 1
YYYY年の値DATETIME8
YYYY-DD時間、2038 年 1 月 19 日 03:14:07 am GMT
Tinybloby0- 255 バイト 255 文字以内のバイナリ文字列 tinytext0-255 バイト 短いテキスト文字列 blob0-65 535 文字 セクション 長いテキストバイナリ形式のデータTEXT0-65 535バイト長いテキストデータMEDIUMBLOB0-16 777 215バイトバイナリ形式の中長テキストデータME DIUMTEXT0-16 777 215バイト中長テキストデータLONGBLOB0-4 294 967 295 バイトバイナリ形式の非常に大きなテキストデータLONGTEXT0-4 294 967 2 95バイト非常に大きなテキストデータ


CHAR 型と VARCHAR 型は似ていますが、保存と取得の方法が異なります。また、最大長と末尾のスペースが保持されるかどうかという点でも異なります。保存または取得中に大文字と小文字の変換は実行されません。

BINARY と VARBINARY は、非バイナリ文字列ではなくバイナリ文字列を含むことを除いて、CHAR と VARCHAR に似ています。つまり、文字列ではなくバイト列が含まれます。これは、文字セットがなく、並べ替えと比較が列値バイトの数値に基づいて行われることを意味します。

BLOB は、可変量のデータを保持できるバイナリ ラージ オブジェクトです。 BLOB タイプには、TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB の 4 つがあります。それぞれ対応できる保管範囲が異なります。

テキストには、TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXTの 4 つのタイプがあります。対応する 4 つの BLOB タイプは最大記憶長が異なり、実際の状況に応じて選択できます。

その他のチュートリアルの推奨事項: MySQL ビデオ チュートリアル

タイプサイズ使用
CHAR0-255バイト固定長文字列
VARCHAR0-65535バイト 可変長文字列