int(2)中的2代表什么

本文探讨了MySQL中int字段后数字的实际含义,指出它并不表示字段长度,而是在使用zerofill时,用于确定显示宽度,并用0填充不足位数的部分。通过创建和测试两个不同定义的zt表,展示了zerofill如何影响数据显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天有个朋友问我int(2)和int(10)有什么区别,难道是指字段的长度吗,答案肯定是否定的。
我们知道在MySQL中int占4个字节,那么无符号的int,最大值就是2^32-1,但是具体int括号后的数字代表什么意思,我们测试来看。

CREATE TABLE `zt` (
  `id` int(2) unsigned NOT NULL,
  `value` varchar(255) COLLATE utf8_bin DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin

我们写入数据库并插入几行数据
在这里插入图片描述
执行查询语句

select * from zt

在这里插入图片描述
我们看出查询的结果都是正常的。

CREATE TABLE `zt` (
  `id` int(2) unsigned zerofill NOT NULL,
  `value` varchar(255) COLLATE utf8_bin DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin

在表加上了zerofill后,我们发现结果就不一样了。
在这里插入图片描述

总结:
int后面的数字只是表示字段的长度,一般加上zerofill后,如果实际数据值的长度没有num大,会通过0补充

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿木Coding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值