mysql int(1) 和 int(10) 和 int(11)区别

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.

posted @ 2022-05-07 15:22  java架构师1  阅读(227)  评论(0)    收藏  举报