?我们先不着急看答案是什么。我们可以自己创建一个数据表然后添加一个字段动手测试一下。比如我现在创建一个数据表是: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道路上高歌猛进,谢谢!