缘起
初学时搞错”整型长度”的含义, 误以为”整型”后面的数字代表的是”允许存储的最大宽度”, 比如, 误以为 int(1)
不能存储 10
.
结论
“浮点型”的长度是用来限制数字存储范围的. 比如 float(3,2)
只能够写入 0.00~999.99
.
“整型”的长度并不会限制存储的数字范围. 比如, int
和 int(3)
的存储范围都是 -2147483648 ~ 2147483647
, int unsigned
和 int(3) unsigned
的存储范围都是0 ~ 4294967295
.
“整型”的长度实际上可以理解为”显示长度”, 如果该字段开启 “Zerofill/补零”就能很明显地知道它的作用.
比如, a
b
c
d
分别表示 int(1)
int(2)
int(3)
int(3) zerofill
, 那么实际存入数据库的数据是这样的:
1 | | v | a | b | c | d | |
PS. 如果开启 “Zerofill/补零”, 则自动会默认为 “Unsigned/非负数”。