MySQLで浮動小数点数を保存するには?DECIMAL型の使い方を実例付きで解説
MySQLで浮動小数点数(float)のような数値を正確に保存したい場合は、DECIMAL() 型を使用するのがおすすめです。FLOATやDOUBLEは近似値として扱われるため誤差が生じる可能性がありますが、DECIMALなら金額などの正確な値をそのまま格納できます。
ここでは、DECIMAL(10,2) を使って価格データを保存する例を見ていきましょう。なお、「DECIMAL(10,2)」は「整数部・小数部を合わせて最大10桁、うち小数点以下2桁」という意味になります。
1. テーブルを作成する
まず、CREATE TABLE文でテーブルを作成します。
mysql> create table DemoTable ( Price DECIMAL(10,2) ); Query OK, 0 rows affected (1.59 sec)
2. レコードを挿入する
次に、INSERT文を使ってテーブルにいくつかのレコードを追加します。
mysql> insert into DemoTable values(874674.50); Query OK, 1 row affected (0.39 sec) mysql> insert into DemoTable values(9948984.20); Query OK, 1 row affected (0.16 sec) mysql> insert into DemoTable values(12345678.99); Query OK, 1 row affected (0.18 sec)
3. データを確認する
SELECT文でテーブル内のすべてのレコードを表示して、値が正しく保存されているか確認しましょう。
mysql> select *from DemoTable;
出力結果
+-------------+ | Price | +-------------+ | 874674.50 | | 9948984.20 | | 12345678.99 | +-------------+ 3 rows in set (0.00 sec)
このように、DECIMAL(10,2) を指定することで、小数点以下2桁までの数値を誤差なく保存できました。金額計算など精度が求められる場面では、FLOATではなくDECIMAL型を選ぶことで、丸め誤差によるトラブルを防ぐことができます。
-
MySQL Workbenchの列フラグ(PK・NN・AIなど)の意味を徹底解説
MySQL Workbenchでは、テーブルの列(カラム)に対してさまざまな「列フラグ」を設定することで、データの整合性を保つことができます。テーブルデザイナーで各カラムのチェックボックスに表示されるこれらのフラグは、それぞれ以下のような意味を持っています。PK - Primary Key(主キー)NN - NOT NULL(NULL値不可)BIN - Binary(バイナリ)UN - Unsigned(符号なし)UQ - Unique(一意制約)ZF - Zero Filled(ゼロ埋め)G - Generated Column(生成列)AI - Auto Increment(自動採番)それ
-
MySQLの「SELECT TRUE」とは?意味と使い方を解説
MySQLにおける「SELECT TRUE」の基本MySQLでは、SELECT TRUEというステートメントを実行すると、条件に一致する行ごとに「1」が返されます。これは、MySQLにおいてTRUE(真)という論理値が内部的に整数の「1」として扱われているためです。逆にFALSE(偽)は「0」に相当します。この記事では、実際にテーブルを作成し、SELECT TRUEがどのような結果を返すのかを具体的な例で確認していきます。検証用テーブルの作成まず、以下のコマンドでサンプルテーブルを作成します。mysql> create table DemoTable(Name varchar(100))