MySQL提供了DECIMAL和FLOAT数据类型,用于存储小数。DECIMAL用于存储任意精度的数字,而FLOAT用于存储4字节或8字节浮点数。
-- 创建表格并设置DECIMAL数据类型 CREATE TABLE products ( id INT(11) NOT NULL AUTO_INCREMENT, name VARCHAR(100) NOT NULL, price DECIMAL(10,2) NOT NULL, PRIMARY KEY (id) ); -- 插入数据 INSERT INTO products (name, price) VALUES ('Product A', 10.50);
在上面的代码中,大家创建了一个名为“products”的表,并设置price列的DECIMAL数据类型以保留小数点后2位。然后,大家插入了一行数据,“Product A”和价格为10.50。
-- 查询数据 SELECT * FROM products; -- 输出结果 +----+----------+-------+ | id, name , price, +----+----------+-------+ | 1 , Product A, 10.50, +----+----------+-------+
在上述查询中,大家可以看到价格列的值为10.50,MySQL正确地保留了小数位数。
尽管DECIMAL数据类型比FLOAT要慢,但是它提供了更高的精确度和可靠性。因此,应该选择DECIMAL来存储货币或任何要求高精度小数计算的数据。