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通过合理选择和使用这些数字类型,可以有效提升数据库的性能和数据的准确性。