跟王老师学MySQL:MySQL数据类型之小数类型
2016-07-04 09:33
381 查看
跟王老师学MySQL:MySQL数据类型之小数类型
主讲教师:王少华QQ群号:483773664
学习内容
小数类型有哪些以及它们的取值范围定义语法中的M和D的含义
定点型和浮点型的区别
一、简介
MySQL中使用浮点数类型和定点数类型来表示小数。浮点数类型包括单精度浮点数(FLOAT型)和双精度浮点数(DOUBLE型)。
定点数类型就是DECIMAL型。
二、字节数、取值范围
![](http://s3.51cto.com/wyfs02/M02/83/A5/wKiom1d5vN6CJyhWAABYCfYvEfI502.png)
三、定义语法
1 | 类据类型 (M,D) |
D:标度,小数点后的长度
注:
小数点不占长度 eg: float(6,2)1234.56
M影响存储范围,eg:float(6,2)-9999.99~~~9999.99
如果插入值的精确度高于实际定义的精度,系统会自动时行四舍五入处理。(这里的四舍五入采用银行的方式,即如果5前面的数是1279,即5不入,如果5前面是2468,则5入)
四、举例
(一)float
1 建一个商品表goods
1 2 3 4 | create table goods( name varchar (10), price float (6,2) ); |
![](http://s3.51cto.com/wyfs02/M00/83/A4/wKioL1d5vN6TxYUJAAAZy6HKJMg541.png)
2 插入值
1 | insert into goods( name ,price) values ( '跑步机' ,688.6); |
![](http://s3.51cto.com/wyfs02/M00/83/A5/wKiom1d5vN6CEriLAAAYgBCrg0Q704.png)
(二)定点型和浮点型区别
1 decimal相对更精确
1、添加二列1 2 | alter table goods add bigprice float (9,2); alter table goods add deciprice decimal (9,2); |
![](http://s3.51cto.com/wyfs02/M01/83/A4/wKioL1d5vN7xAmcQAAAzow0khQk676.png)
2 插入数据
1 | insert into goods( name ,bigprice,deciprice) values ( '自行车' ,1234567.23,1234567.23); |
![](http://s3.51cto.com/wyfs02/M01/83/A5/wKiom1d5vN6S5OxxAAAigB866Js890.png)
原因:decimal在数据库中是以字符存储,因皮,如果要对数据的精度要求比较,还是选择定点数
2 默认精度不一样
如果不指定精度,浮点数和定点数有其默认精度。FLOAT和DOUBLE型默认会保存实际精度
DECIMAL型默认整数位为10,小数位为0
添加字段:
1 2 3 | alter table goods add a float ; alter table goods add b double ; alter table goods add d decimal ; |
![](http://s3.51cto.com/wyfs02/M01/83/A5/wKiom1d5vN7Bz8RHAAAa7pVzO_4481.png)
插入数据:
1 | insert into goods( name ,a,b,d) values ( '汽车' ,3.143,3.143,3.143); |
![](http://s3.51cto.com/wyfs02/M02/83/A4/wKioL1d5vN_gGVSdAAAnO5MGn1g088.png)
五、教学视频
相关文章推荐
- MySQL中的integer 数据类型
- MySQL存储过程
- mysql中int、bigint、smallint 和 tinyint的区别与长度
- mysql load data 导出、导入 csv
- source命令执行SQL脚本文件
- MySQL创建用户及权限控制
- MySQL管理数据表
- linux下mysql添加用户
- mysql procedure
- mysql触发器
- MySQL 备份和恢复策略
- mac下安装mysql(转载)
- mysql 修改编码 Linux/Mac/Unix/通用(杜绝修改后无法启动的情况!)
- MySQL数据的导出、导入(mysql内部命令:mysqldump、mysql)
- mysql数据行转列
- Linux下修改MySQL编码的方法
- MySQL Server 日志
- MySQL 安全事宜