INT(5)和INT(11)的区别:
原文链接:https://blog.csdn.net/qq_29039705/article/details/80403592
在用数据库设计工具创建表的时候,可以留意到每个字段有一个 “ZF”(zerofill)属性,如下图(WorkBench):
如果我们将其勾上,插入的自增id是如下格式:
此过程中, MySQL的存储引擎InnoDB会为不足5位的id用0来补齐。
插入一个较大的id数据:
insert into ansel(id,name,age,birthday) value(1234567,'test',1,'2018*5*22 11@29@1');
展示如下:
假如创建表的时候没有设置ZF属性,可以通过sql语句修改:
alter table ansel modify id int(11) zerofill;
再查询就是如下展示结果:
三、总结:
不论是int(5)还是int(11),括号中的长度只在设置了ZF属性时有用,其他的地方没有区别.它在数据库里面存储的都是4个字节的长度,在使用int(5)的时候如果你输入的是10,会默认给你存储位00010,也就是说这个5代表的是默认的一个长度,当你不足5位时,会帮你不全,当你超过5位时,就没有任何的影响。