MySQLでの整数・小数の扱いメモ
投稿日:2017年03月06日
最終更新日:
もくじ
- 整数(int)
- 浮動小数点数(float,double)
- 固定小数点数(decimal)
整数(int)
これはただの整数です。MySQLの場合は扱う整数の範囲(大きさ)に応じて5つのデータ型が用意されています。
- TINYINT…1バイト(符号無しなら0~255,符号付きなら-128~127)
- SMALLINT…2バイト(符号無しなら0~65535,符号付きなら-32768~32767)
- MEDIUMINT…3バイト(符号無しなら0~16777215,符号付きなら-8388608~8388607)
- INT…4バイト(符号無しなら0~4294967295,符号付きなら-2147483648~2147483647)
- BIGINT…8バイト(符号無しなら0~18446744073709551615,符号付きなら-9223372036854775808~9223372036854775807)
SQLコマンドで整数型のデータを格納するテーブルを作成するときはこんな感じのコマンドを打ちます。実際には他のカラムの情報もずらずら書きますが。 [mysql] #データベース名から打ち込む場合 #データベース名 db_name #テーブル名 tbl_name #カラム名 hoge #hogeカラムのデータ型 INT(符号付き) CREATE TABLE db_name.tbl_name(hoge INT) [/mysql] [mysql] #テーブル名から打ち込む場合 #データベース名 db_name #テーブル名 tbl_name #カラム名 hoge #hogeカラムのデータ型 TINYINT(符号無し) CREATE TABLE tbl_name(hoge TINYINT UNSIGNED) [/mysql] データ型指定時に「UNSIGNED」をつけると符号無しの数になります。0と正の整数のみを扱うと確定している場合は、符号なしにして扱える数の範囲を広げておくのもいいでしょう。
浮動小数点数(float,double)
こちらは小数も扱うことが出来ます。MySQLでは2つのデータ型を用意しています。
- FLOAT(単精度)…4バイト
- DOUBLE(倍精度)…8バイト
SQLコマンドで浮動小数点数型のデータを格納するテーブルを作成するときはこんな感じのコマンドを打ちます。実際には他のカラムの情報もずらずら書きますが。 [mysql] #データベース名から打ち込む場合 #データベース名 db_name #テーブル名 tbl_name #カラム名 hoge #hogeカラムのデータ型 FLOAT CREATE TABLE db_name.tbl_name(hoge FLOAT) [/mysql] [mysql] #テーブル名から打ち込む場合 #データベース名 db_name #テーブル名 tbl_name #カラム名 hoge #hogeカラムのデータ型 DOUBLE CREATE TABLE tbl_name(hoge DOUBLE) [/mysql]
固定小数点数(decimal)
こちらも小数を扱うことが出来ますが、浮動小数点数で発生するような誤差はないので、正確な精度が要求される用途(金銭やポイントなどのデータ)でも使用できます。MySQLの場合は、DECIMAL型が固定小数点数です(NUMERIC型もあるようですが、本ページでは解説しません)。このデータ型を使う場合は、整数部+小数部の合計桁数及び小数部に割り当てる桁数を事前に定めることになります。
例えば合計桁数、小数部の桁数を [mysql] hoge1 DECIMAL(4,2) [/mysql] と指定した場合は、合計桁数が4,小数部の桁数が2になるので、表せる数の範囲は -99.99 から 99.99 になります。
SQLコマンドで固定小数点数型のデータを格納するテーブルを作成するときはこんな感じのコマンドを打ちます。実際には他のカラムの情報もずらずら書きますが。 [mysql] #データベース名から打ち込む場合 #データベース名 db_name #テーブル名 tbl_name #カラム名 hoge #hogeカラムのデータ型 DECIMAL #整数部+小数部の合計桁数 20 #小数部の桁数 10 CREATE TABLE db_name.tbl_name(hoge DECIMAL(20,10)) [/mysql] [mysql] #テーブル名から打ち込む場合 #データベース名 db_name #テーブル名 tbl_name #カラム名 hoge #hogeカラムのデータ型 DECIMAL #整数部+小数部の合計桁数 15 #小数部の桁数 8 CREATE TABLE tbl_name(hoge DECIMAL(15,8)) [/mysql]
参考リンク
- MySQL :: MySQL 5.6 リファレンスマニュアル :: 11.2.1 整数型 (真数値) – INTEGER、INT、SMALLINT、TINYINT、MEDIUMINT、BIGINT
- MySQL :: MySQL 5.6 リファレンスマニュアル :: 11.2.3 浮動小数点型 (概数値) – FLOAT、DOUBLE
- MySQL :: MySQL 5.6 リファレンスマニュアル :: 11.2.2 固定小数点型 (真数値) – DECIMAL、NUMERIC
- MySQL :: MySQL 5.6 リファレンスマニュアル :: 12.20.2 DECIMAL データ型の特性
- 整数型 – MySQLのデータ型 – MySQLの使い方
- テーブルの作成(CREATE TABLE文) – テーブルの作成 – MySQLの使い方