mysql数据类型decimal

在MySQL中,DECIMAL是一种精确数字数据类型,用于存储具有真实小数点的数字。与FLOAT和DOUBLE等浮点数数据类型不同,DECIMAL以固定的精度和范围存储数字,适用于需要精确计算的场景,如财务和精确计算。
语法
DECIMAL(precision, scale)
precision表示总共的位数,包括小数点前和小数点后的位数。scale表示小数点后的位数。
例如,DECIMAL(10,2)可以存储最大10位数字,其中小数点后有2位。
特点
- 精确度高:
DECIMAL适用于需要精确计算的场景,如金融领域。 - 固定精度:不受存储空间影响,存储和计算不会产生误差。
- 存储空间较大:相比
FLOAT和DOUBLE,DECIMAL占用的存储空间较大。 - 适用于货币和计数值:
DECIMAL在处理货币和计数值时非常有用。
示例
假设我们有一个表t_prices用于存储商品价格,我们可以使用DECIMAL类型来存储价格信息。
CREATE TABLE t_prices (
id INT PRIMARY KEY,
product_name VARCHAR(50),
price DECIMAL(10, 2)
);
INSERT INTO t_prices (id, product_name, price) VALUES (1, 'Apple', 3.50);
INSERT INTO t_prices (id, product_name, price) VALUES (2, 'Banana', 1.20);
INSERT INTO t_prices (id, product_name, price) VALUES (3, 'Orange', 2.75);
SELECT * FROM t_prices;
上述示例创建了一个名为t_prices的表,包含id、product_name和price三个字段,其中price字段使用DECIMAL(10, 2)类型存储商品价格。插入了三种水果的价格,并查询表中的数据。
运行结果如下:
id | product_name | price
-------------------------
1 | Apple | 3.50
2 | Banana | 1.20
3 | Orange | 2.75
总结
DECIMAL是一种精确数字数据类型,在需要精确计算和存储小数的场景中很有用。虽然占用的存储空间较大,但能够确保数据的精确性,特别适用于对精度要求较高的领域。在设计数据库时,根据实际需求选择合适的数据类型是非常重要的。
极客笔记