正文
突然看到一个有趣的问题,int(11)和int(10)到底有啥区别?相信很多人又很犯糊涂,今天在这里解释一下他们之间的区别!
首先看一下数据库中的int类型:
MySQL 为 INT
数据类型提供了显示宽度和 ZEROFILL
属性,主要用于格式话显示数字。不过,从 MySQL 8.0.17 开始,显示宽度和 ZEROFILL
属性都不再建议使用,并且会在将来的版本中删除。如果有类似的格式化需求,可以使用 LPAD()
函数实现。
也即是展示的长度,但是这里疑问了,如果int类型实际上是接近21亿的,他能存储超过10位以上的数字嘛?答案是肯定的,可以存储,只不过,当数字小于10位时,会使用其他的字符填充,如果超过10位,那么就会显示实际的存储值。也就是,int(10)不会改变这个类型存储数据的范围,所以可以得到下面的结论!!
int(11)和int(10)实际上是没有什么区别的,都是可以存储-21亿到21亿的数字,只不过展示的最小长度不同而已!!