在MySQL中,表示价格通常使用DECIMAL或NUMERIC数据类型,因为它们能够精确地存储小数,适合用于财务计算。
DECIMAL 或 NUMERICDECIMAL 和 NUMERIC 类型可以精确地存储小数,避免了浮点数类型(如 FLOAT 和 DOUBLE)可能带来的精度丢失问题。这对于财务数据尤其重要。假设你要存储商品价格,通常保留两位小数,可以这样定义表结构:
CREATE TABLE products (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
price DECIMAL(10, 2) NOT NULL
);DECIMAL(10, 2) 表示总共可以存储10位数字,其中2位是小数部分。因此,最大值为 99999999.99。DECIMAL(13, 2)。DECIMAL 和 NUMERIC 提供了高精度,但在某些情况下可能会比浮点类型稍慢。不过,对于大多数应用场景,这种性能差异是可以接受的。DECIMAL 和 NUMERIC 只存储数值,不包含货币符号。如果需要显示货币符号,可以在应用层处理,或者在查询时使用数据库的格式化函数。例如,在MySQL中可以使用 FORMAT 函数:SELECT FORMAT(price, 2) AS formatted_price FROM products;-- 插入数据
INSERT INTO products (name, price) VALUES ('商品A', 199.99);
INSERT INTO products (name, price) VALUES ('商品B', 299.50);
-- 查询数据并格式化价格
SELECT name, FORMAT(price, 2) AS price FROM products;没有搜到相关的文章