MySQL学习 int(2)和int(4)的区别
问题
- int(1) int(4) 中的作用是做什么
概述
int(1),int(4)括号中的数字是为了填充长度空缺的长度。
int(1)和int(4)
下面两小章节来自参考资料
浮点型的长度
浮点型”的长度是用来限制数字存储范围的. 比如 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, 那么实际存入数据库的数据是这样的:
| v | a | b | c | d | +-----+-----+-----+-----+-----+ | 1 | 1 | 1 | 1 | 001 | | 10 | 10 | 10 | 10 | 010 | | 100 | 100 | 100 | 100 | 100 |
PS. 如果开启 “Zerofill/补零”, 则自动会默认为 “Unsigned/非负数”.
作用
《高性能MySQL》 中的说明
MySQL 可以为整数类型指定宽度, 例如 INT(11), 对大多数应用这是没有意义的: 它不会限制值的合法范围, 只是规定了 MySQL 的一些交互工具(例如 MySQL 命令行客户端)用来显示字符的个数. 对于存储和计算来说, INT(1) 和 INT(20) 是相同的
参考资料 :
- https://www.jianshu.com/p/61293b416335