MySQL int(M)了解


MySQL int(M)了解

在MySQL创建表时,通常会看到某个int字段,定义为 a int(10) b int(11)....
疑问,那么这里的10,11..,是什么?

查询了下,只有在加 zerofill时,才能看出效果,否则,select结果出来一样,但是,
我们姑且叫了"宽度"
create table t1(Id int(3) zerofill) engine=InnoDB;
insert into t1 select 1;

insert into t1 select 11;

insert into t1 select 111;

insert into t1 select 1111;

查询如下:
mysql> select * from t1;
+------+
| Id   |
+------+
|  001 |
|  011 |
|  111 |
| 1111 |
+------+
7 rows in set (0.00 sec)
create table t2(Id int(3))engine=InnoDB;
insert into t2 select 1;
insert into t2 select 11;
insert into t2 select 111;
查询结果如下:
mysql> select * from t2;
+------+
| Id   |
+------+
|    1 |
|   11 |
|  111 |
+------+
3 rows in set (0.00 sec)

综上所述:当你输入11时,会默认给你存储011,那么int(3)中3就是一数据长度(宽度),当你不足3位时,帮你补全,超过

3,也无影响;如int(1)和int(10)存储格式上有点区别,使用时没有不同,只在zerofill下才可看出点点效果.

注意:不论是int(1),int(10)...数据库存储或数据占的空间是4个字节长度,和这个1..10没有关系;有关系是在定义

int类型是有无unsigned(符号),存储数据范围不同;




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值