MySQL数据类型int(11)括号中11的具体解释
⼀、数据库中整型可以分为5种,TINYINT,SMALLINT,MEDIUMINT,INT和BIGINT,分别占⽤1、2、3、4和8个字节,这个是固定的。
也就是说这个 在定义表的时候选择INT(11)和INT(5)对于占⽤的空间是没有区别的,都是4个字节,32个⼆进制位,可存储的值都在下表所⽰范围内。findinarray
Type Storage (Bytes)Minimum Value Signed Minimum Value Unsigned Maximum Value Signed Maximum Value Unsigned TINYINT1-1280127255
SMALLINT2-3276803276765535
js标签MEDIUMINT3-83886080838860716777215
hive count distinctINT4-2147483648021474836474294967295
oracle查询前10条数据BIGINT8-2^6302^63-12^64-1
⼆、那么问题来了,INT(11)和INT(5)的区别在哪呢?
vb教程 精简
在⽤数据库设计⼯具创建表的时候,可以留意到每个字段有⼀个 “ZF”(zerofill)属性,如下图(WorkBench):
如果我们将其勾上,插⼊的⾃增id是如下格式:
此过程中, MySQL的存储引擎InnoDB会为不⾜5位的id⽤0来补齐。
插⼊⼀个较⼤的id数据:
insert into ansel(id,name,age,birthday) value(1234567,'test',1,'2018*5*22 11@29@1');
展⽰如下:
假如创建表的时候没有设置ZF属性,可以通过sql语句修改:
alter table ansel modify id int(11) zerofill;
再查询就是如下展⽰结果:
三、总结:
括号中的长度只在设置了ZF属性时有⽤,其他的地⽅没有区别;当然,5或11也限制了能储存的数字⼤⼩,这是不容忽视的。
⽤处:有些企业级开发应⽤场景中,可以⽤于较长的订单号。
四、参考:
mysql语句分类Copyright © 2018 Ansel. All rights reserved.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论