数值类型
一.说到底也就是四种类型:整数,浮点数,定点数,位类型
1.第一种:整数类型(唯一一个区分符号),如果是负数的话肯定选有符号的。
无符号的范围更加广,从0开始。有符号的范围小一些,从负数到正数都有涉猎。
字节变化:1 2 3 4 8
Int类型的默认为int(11),即有11位,正常情况下是不显示的,当在字段类型int后面加上zerofill才会显示,不够的位数用0来补全。
当int(4)时,输入的位789797,超过了4位,但是不会影响,还是按照789797来显示。
Int类型中的无符号属性unsigned,当添加了zerofill时候,默认位unsigned属性
记忆:最小的几乎都是前面带tiny的
Tinyint---smallint----mediumint----int------bigint
2.第二种:浮点数(float 4字节和double 8字节)
其实就是小数
Float(10,2):代表这小数位+整数位共10位,其中小数位2位
例如:5959.44(没有必要整数位一定是8位)
- 第三种:定点数(decimal)所占字节:M+2(M为整数位+小数位)
以字符串的形式存储,应用在高精度的情况下。例如货币金额等等
定点数和浮点数的区别:
总结:
浮点数没有精度限制,则数据按照实际显示。
如果有精度,则按照精度走,四舍五入。
定点数没有精度,默认按照decimal(10,0)来,如果有精度,按照精度走,如果数据超出了精度,则会报警告。
4.第四种;位类型
Bit(M):M代表二进制转化后看到的位数,不写默认位1
Bin():二进制 hex():十六进制
想看bit:select bin(字段名)/ hex(字段名) from bai;
日期类型
时间:datetime 和timestamp
范围而言:datetime更大,范围可以到9999
时间精度:datetime只可以更新中国时区,即东8区,而timestamp却可以修改时区,同时查看当前时间为新时区的时间
timestamp输入NULL时,会默认输入当前的时间,如果超出范围则全为0
字符串类型
1.
插入用的是SET
- ENUM类型(枚举类型)
枚举类型:例如一星期有七天,不值得认为他是一个字符,将(星期一,星期二......星期日)认为是一个整体,里面有7个成员。可以不分大小写。
ENUM 中文名称叫枚举类型,它的值范围需要在创建表时通过枚举方式显式指定,对1~255 个成员的枚举需要1 个字节存储;对于255~65535 个成员,需要2 个字节存储。最多允许有65535 个成员。而且插入成员的时候每次只可以插入一个成员。
- SET类型
SET类型随着存储成员的增加所占的字节数也快速变化,字节数在64个成员时达到8个字节。SET类型最多64个成员,而EUNM却可以有65535个成员。
区别:
字节数多
成员数少
每次插入的成员可以为多个