MySQLにおけるデータ型は基本的に三つです。
- 数値型
- 文字型
- 日付型
数値型
整数型
基本的にはINT型を抑えておくと良いでしょう。
データ型 | 値の範囲 | UNSIGNED | ZEROFILL | |
---|---|---|---|---|
TYNYINT(m) | 整数型(1バイト) | -128〜127 | 0〜255 | 000〜255 |
SMALLINT(m) | 整数型(2バイト) | -32768〜32767 | 0〜65536 | 00000〜65536 |
MEDIUMINT(m) | 整数型(3バイト) | -8388608〜8388607 | 0〜16777215 | 0000000〜16777215 |
INT(m) | 整数型(4バイト) | -2147483648〜2147483647 | 0〜4294967295 | 0000000000〜4294967295 |
BIGINT(m) | 整数型(8バイト) | -92233720368〜92233720367 | 0〜18446744073709551615 | 00000000000000000000〜18446744073709551615 |
UNSIGNED
マイナス方向の数値範囲をプラス方向に全て持っていくオプションです。
ZEROFILL
0埋めできるオプションです。UNSIGNEDと同じようにマイナスの値は使えません。
浮動小数点型
多くの場合はFLOAT型を使っておけば汎用性が高く問題ありません。
データ型 | 値の範囲 | |
---|---|---|
FLOAT | 単精度浮動小数点型 | -3.402823466E+38〜3.402823466E+38 |
DOUBLE | 倍精度浮動小数点型 | -1.7976931348623157E+308〜1.7976931348623157E+308 |
FLOAT(m,d) | 単精度浮動小数点型 | m:整数の桁数、1〜255桁、n:小数の桁数、0〜30桁まで指定可能 |
DOUBLE(m,d) | 倍精度浮動小数点型 | m:整数の桁数、1〜255桁、n:小数の桁数、0〜30桁まで指定可能 |
文字型
基本的には文字列を格納する項目に関してはVARCHARを使えば良いでしょう。
データ型 | 値の範囲 | |
---|---|---|
CHAR(m) | 固定長文字列 | m(文字数指定):0〜255文字 |
VARCHAR(m) | 可変長文字列 | m(バイト数):0〜65535バイト |
TYNYTEXT | テキスト型 | 0〜255バイト(固定) |
TEXT | テキスト型 | 0〜65535バイト(固定) |
MEDIUMTEXT | テキスト型 | 0〜16777215バイト(固定) |
LONGTEXT | テキスト型 | 0〜4294967295バイト(固定) |
日付型
データ型 | 基本フォーマット | 備考 | |
---|---|---|---|
DATE | 日付型 | 'YYYY-MM-DD' | |
DATETIME | 日付時刻型 | 'YYYY-MM-DD HH:MM:SS' | |
TIMESTAMP | 日付時刻型 | 'YYYY-MM-DD HH:MM:SS' | |
TIME | 時刻型 | 'HH:MM:SS' | |
YEAR[4] | 日付型(4桁年) | 'YYYY' | 1901〜2155または0000が設定可能 |
YEAR[2] | 日付型(2桁年) | 'YY' | 70〜69が設定可能(1970〜2069を指す) |
DATETIME型
サポートされてる時間の範囲
1 |
'1000-01-01 00:00:00' ~ '9999-12-31 23:59:59' |
create文
1 2 3 4 5 |
CREATE TABLE datetime_tb ( id int NOT NULL AUTO_INCREMENT, insertDate datetime DEFAULT NULL, PRIMARY KEY (id) ); |
insert文
1 2 |
INSERT INTO datetime_tb (insertDate) VALUE ('2021-10-23 19:16:30'); INSERT INTO datetime_tb (insertDate) VALUE (NOW()); // 現在の日付 |
TIMESTAMP型
サポートされている時間の範囲
UNIX時間しかサポートしていない。
1 |
'1970-01-01 00:00:01' UTC ~ '2038-01-19 03:14:07' UTC |
この記事へのコメントはありません。