在MySQL中,DECIMAL类型用于存储精确数字。它可以存储从-10^65到10^65-1之间的数字。DECIMAL类型有两个参数:M和D。其中,M为整数位数,D为小数位数。
DECIMAL类型的边界值如下:
DECIMAL(1,0): -9到9DECIMAL(2,0): -99到99DECIMAL(3,0): -999到999DECIMAL(4,0): -9999到9999DECIMAL(5,0): -99999到99999DECIMAL(6,0): -999999到999999DECIMAL(7,0): -9999999到9999999DECIMAL(8,0): -99999999到99999999DECIMAL(9,0): -999999999到999999999DECIMAL(10,0): -9999999999到9999999999
如果要存储带有小数点的数字,则需要将D设置为小数位数,如DECIMAL(10,2)可以存储-99999999.99到99999999.99之间的数字。
需要注意的是,如果超出边界值,则会出现截断或错误。例如,如果将DECIMAL(3,0)设置为100,则数字将被截断为999。
-- 错误范例CREATE TABLE demo (id INT PRIMARY KEY,decimal_val DECIMAL(3, 0));INSERT INTO demo (id, decimal_val) VALUES (1, 100);-- 正确范例CREATE TABLE demo (id INT PRIMARY KEY,decimal_val DECIMAL(3, 0));INSERT INTO demo (id, decimal_val) VALUES (1, 999);
因此,在使用DECIMAL类型时,需要仔细考虑M和D的设置,并确保不超出范围。