mysql数据库中int字段长度,即int(1)和int(10)的区别

1.起因

为什么想起来看这个问题,是最近有同事问mysql的init类型的字段长度的问题,他问int(1)和int(10)是什么意思,是字段长度越大,能存储的数字越大么?咋一问,还有点懵,从惯性思维来看,确实应该是这样。那么,实际情况是什么样的呢?这里直接通过实验来试一下。

2.设置int类型的长度为1

CREATE TABLE `t_student` (`id` int(1) NOT NULL AUTO_INCREMENT COMMENT 'ID编号',`name` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '学生姓名',PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

然后插入一条数据:

INSERT INTO t_student values(1000001,'张三');

竟然能够插入成功。
在这里插入图片描述

3. 设置int类型的长度为10,并且加入zerofill参数

CREATE TABLE `t_supder_student` (`id` int(10) zerofill NOT NULL AUTO_INCREMENT COMMENT 'ID编号',`name` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '学生姓名',PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

然后插入一条数据

INSERT INTO t_supder_student values(1,'李四');

在这里插入图片描述
我们可以看到,虽然我们插入的是1,但是显示的是1前面补充了9个0,到现在我似乎就明白了,int类型的长度不是指的能存多大的数据,而是在与zerofill联合使用的时候,可以进行0填充。

4.注意事项

以上的示例都是在MySQL Workbench上操作的。对于navcat或者其他一些客户端,查询显示的时候,会把补充的0给去掉,导致看不到真实的效果。

5.小结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/257388.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

论文分享 | 基于机载单目视觉的四旋翼无人机群内相对定位

阿木实验室推出的开源项目校园赞助活动,再次迎来开发者参与! 国防科技大学电子对抗学院司晓坤同学,在Prometheus开源仿真架构的基础上进行了二次开发,且使用Prometheus 450(P450)进行了真机实验并发表了相…

12月8日星期五今日早报简报微语报早读

12月8日星期五,农历十月廿六,早报微语早读。 1、广东男篮官宣:易建联9号球衣退役12月29日 正好首秀21周年; 2、2024届全国普通高校毕业生规模预计达1179万人; 3、国务院:严禁新增钢铁产能 严格合理控制煤…

leetcode面试经典150题——35 螺旋矩阵

题目: 螺旋矩阵 描述: 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例: 输入:matrix [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5] 提示&…

Linux centos8安装JDK1.8、tomcat

一、安装jdk 1.如果之前安装过jdk,先卸载掉旧的 rpm -qa | grep -i jdk 2.检查yum中有没有java1.8的包 yum list java-1.8* 3.yum安装jdk yum install java-1.8.0-openjdk* -y 4.验证 二、安装tomcat Index of /tomcat 可以在这里选择你想要安装的tomcat版本…

学习设计模式的一个好网址

常用设计模式有哪些? (refactoringguru.cn)https://refactoringguru.cn/design-patterns

统信UOS_麒麟KYLINOS安装奇安信并自动配置服务器IP端口号

往期好文:麒麟iso镜像中GRUB字体大小怎么改? hello,大家好啊,今天我要给大家介绍的是在统信UOS或者麒麟KYLINOS操作系统上安装奇安信网神终端管理系统,并通过自动配置IP及端口号来简化管理流程的方法。这种配置主要通过…

Linux-实现小型日志系统

目录 一.日志 二.实现任意个数元素求和 三.编写一个日志函数 1.设置日志等级 2.设置日志时间 3.设置日志的打印格式 4.将日志的内容输出到文件 一.日志 日志等级,日志时间,日志内容,文件的名称和行号 日志等级…

UEFI下Windows10和Ubuntu22.04双系统安装图解

目录 简介制作U盘启动盘并从U盘启动电脑安装系统安装Windows系统安装Ubuntu 附录双系统时间不一致 简介 传统 Legacy BIOS主板下的操作系统安装可参考本人博客 U盘系统盘制作与系统安装(详细图解) ,本文介绍UEFI主板下的双系统安装&#xff…

关于mysql高版本使用groupby导致的报错

在开发时,遇到mysql版本在5.7.X及以上版本时使用group by 语句会报以下的错误 Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column business_typ…

代码混淆技术探究与工具选择

引言 在软件开发中,保护程序代码的安全性是至关重要的一环。代码混淆(Obfuscated code)作为一种常见的保护手段,通过将代码转换成难以理解的形式来提升应用被逆向破解的难度。本文将介绍代码混淆的概念、方法以及常见的代码混淆工…

[Linux] Bash脚本多函数应该如何执行?使用eval提高脚本编写效率!

在工作过程中经常会编写一些测试脚本,有些脚本里有多个函数,要通过用户输入执行对应的函数,如这样: 这也太麻烦了吧 执行如下: 这样在函数多的情况下需要写很多判断,效率低下。 我们可以使用eval命令来进行…

『PyTorch学习笔记』如何快速下载huggingface模型/数据—全方法总结

如何快速下载huggingface模型/数据—全方法总结 文章目录 一. 如何快速下载huggingface大模型1.1. IDM(Windows)下载安装连接1.2. 推荐 huggingface 镜像站1.3. 管理huggingface_hub cache-system(缓存系统) 二. 参考文献 一. 如何快速下载huggingface大模型 推荐 huggingface…