MySQL DECIMAL 数据类型介绍
DECIMAL
是一种 MySQL 数据类型,用于存储精确数值。在处理货币和其他需要高精度计算的数据时非常有用。
语法
DECIMAL(M,D)
- M:表示总的数字位数,即整数部分和小数部分的位数之和。
- D:表示小数点后的位数。
例如, DECIMAL(10,2)
表示最多有 10 个数字,其中 2 个数字在小数点后面。因此,最大值为 99999999.99,最小值为 -99999999.99。
使用场景
DECIMAL
类型通常用于存储货币金额和百分比等需要高精度计算的数据。由于浮点数精度问题,不推荐在这些情况下使用 FLOAT
或 DOUBLE
数据类型。
示例
示例 1:存储货币金额
假设要存储一个订单的总金额,其中包含货币符号和小数点,可以使用 DECIMAL
数据类型:
CREATE TABLE orders (
id INT PRIMARY KEY,
total_amount DECIMAL(10,2)
);
INSERT INTO orders VALUES (1, 99.99);
INSERT INTO orders VALUES (2, 499.50);
INSERT INTO orders VALUES (3, 1099.00);
查询语句:
SELECT * FROM orders;
结果:
+----+--------------+
| id | total_amount |
+----+--------------+
| 1 | 99.99 |
| 2 | 499.50 |
| 3 | 1099.00 |
+----+--------------+
示例 2:存储百分比
假设要存储一个销售团队的完成率,可以使用 DECIMAL
数据类型:
CREATE TABLE sales_team (
id INT PRIMARY KEY,
completion_rate DECIMAL(5,2)
);
INSERT INTO sales_team VALUES (1, 80.50);
INSERT INTO sales_team VALUES (2, 100.00);
INSERT INTO sales_team VALUES (3, 50.00);
查询语句:
SELECT * FROM sales_team;
结果:
+----+-----------------+
| id | completion_rate |
+----+----------------+
| 1 | 80.50 |
| 2 | 100.00 |
| 3 | 50.00 |
+----+-----------------+
结论
DECIMAL
类型适用于需要高精度计算的情况,如货币和百分比。它可以保证精确性,避免由于浮点数精度问题而导致的计算错误。