mysql int(1) 和 int(10) 和 int(11)区别
CREATE TABLE IF NOT EXISTS `test2` (
`t1` int(5) NOT NULL,
`t2` int(11) unsigned zerofill NOT NULL,
`t3` int(11) unsigned NOT NULL,
`t4` int(11) zerofill NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE = utf8_unicode_ci;
本质上没有区别
int后面的长度表示为显示长度,当然,你的数据如果大于了显示的长度,mysql不可能把你数据给截取,所以这就是为什么设置了int(1)可是还能存较大数的原因。
int类型取值范围-2147493648 到 2147493647,这个时候需要11位,如果设置了unsigned无符号,这个时候能存储范围为0-4294967295 ,这个时候需要10位,所以在建表的时候int(10) 和int(11) 可以用来当作语意来使用。
设置zerofill填充0的时候,默认会设置unsigned无符号,这个时候int后面的长度将起到效果,比如设置int(4) 存入数据3 ,显示0003。
总结:
int后面的长度为显示长度,用的最多的是配合zerofill来填充0.

浙公网安备 33010602011771号