INT[(M)] [UNSIGNED] [ZEROFILL]
M表示显示最大宽度,最大为255,个人认为无意义当M定义值为1时,也可以存储到10位数据[或许这里的只是对前端的应用显示吧?]
大小:4个字节
存储范围:
single(-2^(32-1),2^(32-1)-1]、unsingle(0,2^32-1)
1.MySQL以一个可选的显示宽度指示器的形式对SQL标准进行扩展,这样当从数据库检索一个值时,可以把这个值加长到指定的长度。例如,指定一个字段的类型为int(6),既可以保证所包含数字少于6个的值从数据库中检索出来时能够自动地用空格填充,需要注意的是,使用一个宽度指示器,不会影响字段的大小和它的存储值的范围。
2.当超出许可范围的数字,会截短后存储。还有一个比较特别的地方是,mysql会在不合规定的值插入表前自动修改为0。
3.ZEROFILL修饰规定0(不是空格)可以用来填补输出的值。使用这个修饰符可以阻止MySQL数据库存储负值。
mysql>create table t1(id int,id2int unsigned); Query OK, 0 rows affected (0.13 sec)
总结:
创建表int类型默认为signed,默认为11,unsigned默认为10.
int(M) 在 integer 数据类型中,M 表示最大显示宽度。
在 int(M) 中,M 的值跟 int(M) 所占多少存储空间并无任何关系。
和数字位数也无关系 int(3)、int(4)、int(8) 在磁盘上都是占用 4 btyes 的存储空间。
M最大值为255,因为int无符号数,最大值为4294967295,宽度为10位,所以定义int(255)是没有意义的。所以定义宽度没有意思。
无符号数默认为10,有符号数默认为11,因为一个 -号,符号位。
声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com