文章目录
- 数据分类
- 数值类型
- tinyint类型
- 有符号类型测试
- 无符号类型测试
- bit类型
- 测试
- float类型
- 有符号测试
- 无符号测试
- decimal类型
- 测试
数据分类
数值类型
tinyint类型
说明:tinyint
有符号能存储的范围是-128-127,无符号能存储的范围是0~255
有符号类型测试
1.建表
2.插入测试
从测试中我们可以看到,数据只保留整数对小数采用四舍五入的方式,并且只能保存范围内的数字,如果超出则不让插入。
无符号类型测试
1.建表
2.插入测试
从上面的两个示例中我们可以看出,如果插入数据超过范围,MySQL直接拦截。
反过来如果我们已近有数据被成功插入到MySQL中了,那么我们的插入一定是合法的。
所以MySQL中,一般而言数据类型本身也是一种约束,倒逼程序员,让程序员尽可能进行正确的插入。
约束是用来约束使用者的。
另外如果你不是一个很好的使用者,MySQL也能保证数据插入的合法性。就能保证数据库中的数据是可预期,完整的。
MySQL表中建立属性列:
列名称在前,类型在后:
例如:num tinyint;
bit类型
使用方式bit(m)
说明:
bit是位类型,
m为指定的位数,如果写m,默认为1,
m的范围是1-64;
测试
1.建表
2.插入测试
我们可以看到,m如果为1插入的范围是0-1,超出则不允许插入,那么为什么num没有显示出来呢?
因为bit字段在显示时,是按照ASCII码对应的值显示。
当我们把它改为10进制的时候就可以显示出来了。
3.测试总结
- a.num默认为ascll码方式显示
- b.可以用hex函数转化为十进制
float类型
使用方式 :float(m,n)
说明:
m为指定显示长度(包括小数,不包括小数点)
n为指定小数位数
如果定义的是float(4,2) unsigned 这时,因为把它指定为无符号的数,范围是 0 ~ 99.99
也就是直接舍弃负数部分
有符号测试
1.建表
2.插入测试
3.根据测试总结
-
a.整数部分在四舍五入之后不能超过规定位数
-
b.小数部分,会按规定位数进行四舍五入的舍弃
-
c.有符号的,则表示范围是-99.99 ~
99.99
无符号测试
1.建表
2.插入测试
3.总结
- a.无符号浮点数直接砍掉小数部分
- b.其余的与有符号浮点数一样
decimal类型
使用方式 :float(m,n)
说明:
m为指定显示长度(包括小数,不包括小数点)
n为指定小数位数
decimal和float很像,但是有区别:float和decimal表示的精度不一样,float会有进度的损失而decimal可以很好的规避这个问题。
测试
1.建表
2.插入测试
我们可以看到精度确实损失了。
其余的与float类型一样这里就不过多演示,