码迷,mamicode.com
首页 > 数据库 > 详细

mysql中int(3)与int(11)有什么区别吗?

时间:2018-04-17 11:36:40      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:make   str   之间   比较   就是   sql   info   strong   .com   

注意:这里的M代表的并不是存储在数据库中的具体的长度,以前总是会误以为int(3)只能存储3个长度的数字,int(11)就会存储11个长度的数字,这是大错特错的。

 

其实当我们在选择使用int的类型的时候,不论是int(3)还是int(11),它在数据库里面存储的都是4个字节的长度,在使用int(3)的时候如果你输入的是10,会默认给你存储位010,也就是说这个3代表的是默认的一个长度,当你不足3位时,会帮你不全,当你超过3位时,就没有任何的影响。

 

前天组管问我 int(10)与int(11)有什么区别,当时觉得就是长度的区别吧,现在看,他们之间除了在存储的时候稍微有点区别外,在我们使用的时候是没有任何区别的。int(10)也可以代表2147483647这个值int(11)也可以代表。

要查看出不同效果记得在创建类型的时候加 zerofill这个值,表示用0填充,否则看不出效果的。

我们通常在创建数据库的时候都不会加入这个选项,所以可以说他们之间是没有区别的。

That which didn‘t kill me makes me stronger

 

声明字段是int类型的那一刻起,int就是占四个字节,一个字节8位,也就是4*8=32,可以表示的数字个数是2的32次方(2^32 = 4 294 967 296个数字)。

4 294 967 296个数字也就是0~4 294 967 295,当然如果区分正负号的话所存的数字会比较小。

技术分享图片

 

来看下面的图片

技术分享图片

mysql中int(3)与int(11)有什么区别吗?

标签:make   str   之间   比较   就是   sql   info   strong   .com   

原文地址:https://www.cnblogs.com/yaowen/p/8862108.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!