MySQLの型 抜粋

よく使うMySQLのデータ型を記載しましたが、それ以外の選択肢として「個人的にこの中から選べばいいかな?」と言うデータ型を抜粋しました。

MySQLの型の抜粋

数値型

・INT型
バイト : 4
範囲 : -2147483648 ~ 2147483647
   : 0 ~ 4294967295

・BIGINT型
バイト : 8
範囲 : -9223372036854775808 ~ 9223372036854775807
   : 0 ~ 18446744073709551615

固定小数点型(アンパック浮動小数点型)

・DECIMAL(デシメル)型
DECIMAL(M,D)
・DECIMAL(20, 10) は、整数部10桁、小数部10桁の合計20桁
・M は最大桁数(精度)。1から65(桁)までの範囲が指定できる。
・D は少数点の桁数。0から30までの範囲がつかえて、D < M でないといけない。
・数値計算が65桁は正確(float型みたいな誤差がない)
・計算コストが高い(遅いらしい)

注) DECIMAL型は、MySQLのバージョンによって違いがあるみたいです(↑は5.1のマニュアルより)。古いバージョンの MySQL では、1から254までの範囲

文字列型

・CHAR型
固定長
CHAR(M) : Mは255文字まで

・VARCHAR型
可変長
VARCHAR(M) : Mは文字数を指定、最大0から65,535バイトまでを指定できる。utfj8mb4の場合、1文字4byteなので、Mの最大値は16,384(調査していないので、実際値ではないと思います。)

・TEXT型
最大長は 65,535バイト
TEXT型はVARCHAR型でバイト数を指定しなかったものと考えてよいそうです。utfj8mb4の場合、16,384文字ぐらい?
TEXT型で足りないときは、MEDIUMTEXT(16,777,215バイト),LONGTEXT(最長4,294,967,295、または4GBバイト)

浮動小数点

・FLOAT型
バイト : 4
範囲 : -3.402823466E+38 ~ -1.175494351E-38, 0, 1.175494351E-38 ~ 3.402823466E+38

・DOUBLE型
バイト : 4
範囲 : -1.7976931348623157E+308 から -2.2250738585072014E-308, 0, 2.2250738585072014E-308 から 1.7976931348623157E+308

日付型と時刻型

・DATETIME型
バイト : 8
形式 : ‘0000-00-00 00:00:00’
範囲 :’1000-01-01 00:00:00′ ~ ‘9999-12-31 23:59:59’

・TIMESTAMP型
バイト : 4
形式 : ‘0000-00-00 00:00:00’
範囲 :’1970-01-01 00:00:00′ ~ ‘2038-01-19 03:14:07’

MySQL :: MySQL 5.1 リファレンスマニュアル :: 22.2 DECIMAL データ タイプの変更

MySQLのデータ型 – MySQLの使い方

MySQL :: MySQL 5.5 Reference Manual :: 11.3.1 The DATE, DATETIME, and TIMESTAMP Types