数据持久化 -- 字段类型详解
数值
MySQL数值类型分为两类,整数和浮点数
整数
整体来说就是根据实际使用的时候尽量选内存占用最小的
- tinyint:1字节,(-128,127)基本上用来表示状态的字段适合用这个类型
- smallint:2字节,范围是(-32768,32767)
- mediumint:3字节,(-8388608,8388607)
- int、integer:4字节,(-2147483648,2147483647)
- bigint:8字节,范围大到无法想象
对于上面的这些整数类型特性上基本一致只是能存储的值不同,最常见的问题是int(2)和int(3),这里的2和3只是一个宽度显示器,并不会影响到数值的存储;例如int(2)同样可以完整的存储100,只是只能展示两位
再说一下unsigned和zerofill两个关键字
- unsigned:表示无符号,不表示负数,这样字段的内存中就能多出一位来存储数值,比如修饰tinyint的时候它的范围变成了0-255
- zerofill:用0来真补输出的值,且当这个关键字修饰时也会自动出现unsigned关键字效果
浮点数
- float:float(7,3)表示总长度不超过7,且小数点后带三位数字
- double
- decimal
浮点数用的很少,就不详细研究了,unsigned和zerofill两个关键字同样适用且效果和修饰整数的时候相同
字符串
- char
- varchar
- tinyblob
- tinytext
- blob
- text
- mediumblob
- mediumtext
- longblob
- longtext
时间类型
- date
- time
- year
- datetime
- timestamp
