当前位置: 首页 > news >正文

int(1) 和 int(10)区别

有个表的要加个user_id字段,user_id字段可能很大,
alter table xxx ADD user_id int(1)。
int(1)怕是不够用吧,接下来是一通解释。

我们知道在mysql中 int占4个字节,那么对于无符号的int,最大值是2^32-1 =
4294967295,将近40亿,难道用了int(1),就不能达到这个最大值吗?

CREATE TABLE `user` (`id` int(1) unsigned NOT NULL AUTO_INCREMENT,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;

id字段为无符号的int(1),我来插入一个最大值看看。


mysql> INSERT INTO `user` (`id`) VALUES (4294967295);
Query OK, 1 row affected (0.00 sec)

可以看到成功了,说明int后面的数字,不影响int本身支持的大小,int(1)、int(2)…int(10)没什么区别。

零填充

一般int后面的数字,配合zerofill一起使用才有效。先看个例子:

CREATE TABLE `user` (`id` int(4) unsigned zerofill NOT NULL AUTO_INCREMENT,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
// An highlighted block
var foo = 'bar';

注意int(4)后面加了个zerofill,我们先来插入4条数据。

mysql> INSERT INTO `user` (`id`) VALUES (1),(10),(100),(1000);
Query OK, 4 rows affected (0.00 sec)
Records: 4  Duplicates: 0  Warnings: 0

分别插入1、10、100、1000 4条数据,然后我们来查询下:

mysql> select * from user;
+------+
| id   |
+------+
| 0001 |
| 0010 |
| 0100 |
| 1000 |
+------+
4 rows in set (0.00 sec)

通过数据可以发现 int(4) +
zerofill实现了不足4位补0的现象,单单int(4)是没有用的。而且对于0001这种,底层存储的还是1,只是在展示的会补0。

int后面的数字不能表示字段的长度,int(num)一般加上zerofill,才有效果。

zerofill的作用一般可以用在一些编号相关的数字中,比如学生的编号 001 002 …
999这种,如果mysql没有零填充的功能,但是你又要格式化输出等长的数字编号时,那么你只能自己处理了。

在这里插入图片描述

http://www.lryc.cn/news/58046.html

相关文章:

  • 华为OD机试-组合出合法最小数-2022Q4 A卷-Py/Java/JS
  • ChatGPT中文在线官网-如何与chat GPT对话
  • macOS 13.3.1 (22E261)With OpenCore 0.9.2开发版 and winPE双引导分区原版镜像
  • 《iTOP-3568开发板快速测试手册》第7章 Yocto系统外设功能测试(1)
  • 【周末闲谈】AI的旅途
  • 回溯算法--01背包问题
  • Spring MVC请求处理流程分析
  • Python高阶知识之属性管理
  • 【Linux】创建目录文件,并完成删除,拷贝,移动,比较等操作
  • python http服务搭建教程
  • 高速数字信号VS射频信号,到底哪个更难设计?
  • 相对路径读取json文件 labelme_shapes_to_label 标签
  • IDEA工具避坑指南(十一):git导入SpringBoot后|不识别依赖 |大量爆红 | 无法启动
  • 管道命令(sort、uniq、tr、cut、eval命令)
  • Windows10系统忘记登录密码解决办法
  • Design Complie实验,使用2007年Synopsy的Lab Guide
  • 问题 B: C语言10.2
  • 多线程控制并发数目工具类Semaphore
  • Redis篇之五大数据类型
  • Linux->文件系统磁盘文件管理
  • echarts tooltip文字太长换行
  • Docker 部署Jira8.1.0
  • 枚举、模拟法(蓝桥杯卡片、数的分解为例)
  • DC-DC升压变换器直流隔离高压输出稳压电源模块5v12v24v48v转50v110v150v220v250v300v350v500v
  • jQuery创建、添加、删除元素
  • 产品快讯丨神策数据 A/B 测试试验指标管理重磅升级
  • 游戏开发之Unity2021URP项目场景的构建
  • 数学分析:多元微积分1
  • STC32G 三轮车负压电磁
  • 【编程小记】位运算 x -x 表示含义