1.数据类型分类
数值类型:bit
tinyint smalliint int bigint
float double decimal
bool
文本,二进制类型:
char
varchar
text
时间日期:date datetime timestamp
String类型:
enum
set
2.数值类型
(1).tinyint,smallint类型等
事实证明,mysql不允许不合法的数据插入,-129和128超出了tinyint的范围。
接下来我们测试一下无符号tinyint的范围。
显然,变成了0~255.
(2)bit类型
bit[(M)] : 位字段类型。M表示每个值的位数,范围从1到64。如果M被忽略,默认为1
我们发现竟然什么都没有,为什么呢?
bit字段在显示时,是按照ASCII码对应的值显示
先将num的范围改大点
(3)小数类型
1).float
float[(m, d)] [unsigned] : M指定显示长度,d指定小数位数,占用空间4个字节
小数:float(4,2)表示的范围是-99.99 ~ 99.99,MySQL在保存值时会进行四舍五入
我们先不指定宽度和小数位数。
可以看出默认6位小数,再多就会丢失精度。
接下来指定一下宽度和精度。
99.9954进位后就是100.00,超出宽度,数据不合法,数据库不允许插入,精度一定会保持两位,哪怕是补两个0.
这样也可以。
接下来看一下无符号float
于是我们知道了,float(4,2) unsigned 类型的数据范围只有0~99.99
2).decimal
decimal(m, d) [unsigned] : 定点数m指定长度,d表示小数点的位数
decimal整数最大位数m为65。支持小数最大位数d是30。如果d被省略,默认为0.如果m被省略,
默认是10。
建议:如果希望小数的精度高,推荐使用decimal。
decimal的精度很高,基本上插入几就是几,float丢失精度就比较多了。