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.
分类:
mysql
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律