你以为int(10)允许存放的数据比int(1)大。
其实是一样大小,它不会限制值的合法范围。
无符号型的话,都是4294967295,42亿(4个字节,占32位,最大值就是2的32次方减1)有符号型就是2的31次方减1。
那它们的区别是?
搭配zerofill时有区别,它规定了MySQL的一些交互工具(例如MySQL命令行客户端)用来显示字符的个数。
比如,定义字段的时候,定义了zerofill,那int(1),你存入10,显示就是10;而int(4),你存入10,显示就是0010,也就是前面补0,补到长度为对应的数字,在数据库中存放的还是10,只是用一些交互工具显示时,给补了0