MySQL 中的数字类型主要包括整数类型和小数类型。以下是对这些类型的基础概念、优势、类型、应用场景以及常见问题的详细解答:
整数类型:
TINYINT
, SMALLINT
, MEDIUMINT
, INT
, BIGINT
。小数类型:
FLOAT
, DOUBLE
, DECIMAL
。FLOAT
和 DOUBLE
是浮点数类型,精度有限。DECIMAL
是定点数类型,精度可指定,适合金融计算等需要高精度的场景。DECIMAL
类型,在处理货币等需要精确计算的场景中非常有用。整数类型:
TINYINT
:非常小的整数,占用 1 字节。SMALLINT
:小整数,占用 2 字节。MEDIUMINT
:中等大小的整数,占用 3 字节。INT
或 INTEGER
:普通整数,占用 4 字节。BIGINT
:大整数,占用 8 字节。小数类型:
FLOAT(M,D)
:单精度浮点数,M 是总位数,D 是小数位数。DOUBLE(M,D)
:双精度浮点数,M 是总位数,D 是小数位数。DECIMAL(M,D)
:定点数,M 是总位数,D 是小数位数。问题1:插入数据时超出范围
示例代码:
CREATE TABLE products (
id INT AUTO_INCREMENT PRIMARY KEY,
price DECIMAL(10, 2)
);
-- 插入数据时超出范围会报错
INSERT INTO products (price) VALUES (9999999999.99); -- 错误
问题2:浮点数精度丢失
DECIMAL
类型代替 FLOAT
或 DOUBLE
进行精确计算。示例代码:
CREATE TABLE transactions (
id INT AUTO_INCREMENT PRIMARY KEY,
amount DECIMAL(10, 2)
);
INSERT INTO transactions (amount) VALUES (0.1 + 0.2); -- 正确显示 0.30
通过合理选择和使用这些数字类型,可以有效提升数据库的性能和数据的准确性。
领取专属 10元无门槛券
手把手带您无忧上云