MySQL数据类型DECIMAL使用心得
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇文章给大家主要讲的是关于MySQL数据类型DECIMAL使用心得的内容,感兴趣的话就一起来看看这篇文章吧,相信看完MySQL数据类型DECIMAL使用心得对大家多少有点参考价值吧。1.DECIMA
千家信息网最后更新 2026年11月02日MySQL数据类型DECIMAL使用心得
本篇文章给大家主要讲的是关于MySQL数据类型DECIMAL使用心得的内容,感兴趣的话就一起来看看这篇文章吧,相信看完MySQL数据类型DECIMAL使用心得对大家多少有点参考价值吧。
1.DECIMAL类型简介
DECIMAL从MySQL 5.1引入,列的声明语法是DECIMAL(M,D)。NUMERIC与DECIMAL同义,如果字段类型定义为NUMERIC,则将自动转成DECIMAL。
对于声明语法DECIMAL(M,D),自变量的值范围如下:
- M是最大位数(精度),范围是1到65。可不指定,默认值是10。
- D是小数点右边的位数(小数位)。范围是0到30,并且不能大于M,可不指定,默认值是0。
例如字段 salary DECIMAL(5,2),能够存储具有五位数字和两位小数的任何值,因此可以存储在salary列中的值的范围是从-999.99到999.99。
2.DECIMAL使用实战
下面我们将创建测试表来验证DECIMAL字段类型的使用:
# 创建具有DECIMAL字段的表 验证decimal默认是decimal(10,0)mysql> create table decimal_tb (col1 decimal,col2 decimal(5,2));Query OK, 0 rows affected (0.04 sec)mysql> show create table decimal_tb\G*************************** 1. row *************************** Table: decimal_tbCreate Table: CREATE TABLE `decimal_tb` ( `col1` decimal(10,0) DEFAULT NULL, `col2` decimal(5,2) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf81 row in set (0.00 sec)# 插入数据测试 # 结论:超出存储范围会报错,小数位不足会自动补0,首位数字为0自动忽略,小数位超出会截断 并按四舍五入处理。mysql> insert into decimal_tb (col1,col2) values (100,100);Query OK, 1 row affected (0.05 sec)mysql> insert into decimal_tb (col2) values (1.23);Query OK, 1 row affected (0.01 sec)mysql> insert into decimal_tb (col2) values (10.2);Query OK, 1 row affected (0.01 sec)mysql> insert into decimal_tb (col2) values (09.9);Query OK, 1 row affected (0.01 sec)mysql> select * from decimal_tb;+------+--------+| col1 | col2 |+------+--------+| 100 | 100.00 || NULL | 1.23 || NULL | 10.20 || NULL | 9.90 |+------+--------+4 rows in set (0.00 sec)mysql> insert into decimal_tb (col2) values (9999);ERROR 1264 (22003): Out of range value for column 'col2' at row 1mysql> insert into decimal_tb (col2) values (12.233); Query OK, 1 row affected, 1 warning (0.01 sec)mysql> show warnings;+-------+------+-------------------------------------------+| Level | Code | Message |+-------+------+-------------------------------------------+| Note | 1265 | Data truncated for column 'col2' at row 1 |+-------+------+-------------------------------------------+1 row in set (0.00 sec)mysql> insert into decimal_tb (col2) values (12.2300);Query OK, 1 row affected (0.01 sec)# 变量范围测试# 结论:M范围是1到65,D范围是0到30,且D不大于Mmysql> alter table decimal_tb add column col3 decimal(6,6);Query OK, 0 rows affected (0.12 sec)Records: 0 Duplicates: 0 Warnings: 0mysql> alter table decimal_tb add column col4 decimal(6,7); ERROR 1427 (42000): For float(M,D), double(M,D) or decimal(M,D), M must be >= D (column 'col4').mysql> alter table decimal_tb add column col4 decimal(65,2);Query OK, 0 rows affected (0.11 sec)Records: 0 Duplicates: 0 Warnings: 0mysql> alter table decimal_tb add column col4 decimal(66,2);ERROR 1426 (42000): Too-big precision 66 specified for 'col4'. Maximum is 65.mysql> alter table decimal_tb add column col5 decimal(60,30); Query OK, 0 rows affected (0.13 sec)Records: 0 Duplicates: 0 Warnings: 0mysql> alter table decimal_tb add column col6 decimal(60,31);ERROR 1425 (42000): Too big scale 31 specified for column 'col6'. Maximum is 30.
3.DECIMAL使用总结
上面的内容从实战出发,介绍了DECIMAL类型的使用方法及注意事项,你可能也知道float、double这些浮点数类型,这两个同样可以存储小数,但这里不过多介绍,只是提醒大家float、double类型无法确保精度,很容易产生误差,特别是在求和计算的时候,所有当存储小数,特别是涉及金额时推荐使用DECIMAL类型。这里总结下使用DECIMAL应该注意的事项:
- DECIMAL(M,D)中,M范围是1到65,D范围是0到30。
- M默认为10,D默认为0,D不大于M。
- DECIMAL(5,2)可存储范围是从-999.99到999.99,超出存储范围会报错。
- 存储数值时,小数位不足会自动补0,首位数字为0自动忽略。
- 小数位超出会截断,产生告警,并按四舍五入处理。
- 使用DECIMAL字段时,建议M,D参数手动指定,并按需分配。
以上关于MySQL数据类型DECIMAL使用心得详细内容,对大家有帮助吗?如果想要了解更多相关,可以继续关注我们的行业资讯板块。
范围
类型
小数
存储
字段
小数位
数据
心得
内容
数字
测试
可不
四舍五入
事项
位数
实战
精度
结论
语法
会报
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技园
亿人帮互联网科技有限公司
新华互联网科技
互联网和科技技术
互联网巨头反垄断金融科技
腾讯阿里互联网科技
卓越科技(互联网 )
壕鑫互联网络科技
上海致骋互联网科技
互联网科技有限公司 翻译
贵州叶脉互联网科技有限公司所属行业
互联网科技实习生岗位
工业互联网科技成果转化
2021世界互联网领先科技成果发布
广州燕处互联网科技有限公司
陕西九四连强互联网科技有限公司
绵阳真晨互联网科技有限公司
互联网科技品牌
科技互联网专业工作会议发言稿
恒生科技互联网指数十大成分股
互联网科技公司华为
北京互联网科技有限公司
互联网科技集团
常德市电业局互联网科技部
彤创互联网科技有限公司
江阴互联网智能科技产品进口
元气玛特互联网科技公司是外包吗
互联网科技接地气
唐山双旺合互联网科技产业园
上海互联网科技园景观