mysql字段声明的长度是否就是最大长度?比如int(2)最大长度就是2吗,值最大是99吗?

发布时间:2024年01月04日

?我们先不着急看答案是什么。我们可以自己创建一个数据表然后添加一个字段动手测试一下。比如我现在创建一个数据表是:test 字段有id,test_number,sno

这三个字段都是int类型的,id和test_number是没有指定长度的,sno是有指定的,我们用sql语句添加该列

ALTER table test add sno INT(1)

然后我们这时候用sql语句插入一条数据。

insert into test(id,test_number,sno) values (1,11,999999)

结果显示:

这时候我们去看数据表test的sno值是否是:999999

所以括号声明的值并不是字段的值的最大长度,mysql的int占据4个字节,1个字节是8位,最大值是2^32-1 =?4294967295,将近40亿。

那么括号指明这个值有什么用呢?配合零填充zerofill一起使用才有效。也就是如果你sno设计的是sno int(4) zerofill,那么当你插入1,10,100,1000会是什么结果呢?

结果如果不够4位,会自动补齐前缀0:

0001

0010

0100

1000

那么这种零填充适合于那些编号比如是这样的0001 0002 -----01000这样的。

总结:

①mysql字段括号声明的值并不是字段的值的最大长度,mysql的int占据4个字节,1个字节是8位,最大值是2^32-1 =?4294967295,将近40亿。

②括号指明这个值的意义在于配合零填充zerofill一起使用才有效

最后:

如果大家觉得这篇文章对你们有所帮助的话,麻烦点个免费的赞赞,也祝各位码农在未来的IT道路上高歌猛进,谢谢!

文章来源:https://blog.csdn.net/weixin_44826783/article/details/135246713
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。