MySQL 中 int(1) 和 int(10) 会影响存储的长度吗

一、MySQL 中 int(1) 和 int(10)

MySQL数据库设计中,经常会遇到 int 类型的字段,并会习惯性的指定长度,比如: int(1)int(10),而一些新手可能会误解它们之间的关系,认为 int(10) 能够存储更多的数据。然而,实际上这两者之间的区别并非是存储容量上的不同,而是涉及到显示的问题。

首先,需要明确的是,int(1)int(10)在数据存储大小和范围上并没有任何区别。无论是int(1)还是int(10),在MySQL 中都是占4个字节,其范围从-2147483648 ~ 2147483647。这是因为int数据类型的存储大小是固定的,显示宽度并不会改变它们的实际存储能力。

比如有表结构如下:

CREATE TABLE `test` (`id` bigint(10) NOT NULL AUTO_INCREMENT,`num1` int(1) NOT NULL,`num2` int(10) NOT NULL,`num3` int(1) unsigned NOT NULL,`num4` int(10) unsigned NOT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

其中num1num2是允许负数,长度分别为110num3num4是允许非负数,长度同样分别为110

下面测试下num1num2写入最大值 2147483647 , num3num4 写入最大值 4294967295 会怎么样:

INSERT INTO test(num1,num2,num3,num4) VALUES (2147483647,2147483647,4294967295,4294967295 );

在这里插入图片描述

可以看到不管是 int(1) 还是 int(10) 都不影响写入数据的长度,下面对数据查询看是否影响展现:

在这里插入图片描述

可以看到展现上也没有影响,既然查看也没有区别,为什么前面说会涉及到显示的问题呢?

其实要搭配 zerofill 一起使用才有效。

比如定义下面表结构,对int类型指定 zerofill

CREATE TABLE `test1` (`id` bigint(10) NOT NULL AUTO_INCREMENT,`num1` int(1) zerofill NOT NULL,`num2` int(10) zerofill NOT NULL,`num3` int(1) unsigned zerofill NOT NULL,`num4` int(10) unsigned zerofill NOT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

下面写入一个比较小的数:

INSERT INTO test1(num1,num2,num3,num4) VALUES (123,123,123,123);

下面查看下展示效果:

在这里插入图片描述

可以看出 int(10) 的字段,如果长度不足 10 还会在前面补充 0

如果写入的内容比较大:

INSERT INTO test1(num1,num2,num3,num4) VALUES (2147483647,2147483647,4294967295,4294967295 );

再次查看,也丝毫不影响 int(1) 的展现:

在这里插入图片描述

总结:int后面的数字不能表示字段的长度,一般配合 zerofill,实现位数不足时补充 0 的效果。

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

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

相关文章

Android Camera2 API 后台服务

最近在搞CameraAPP需要将Camera2弄成一个后台服务,发现跟预览的Activity没多大变动只是加了Service,和一些简单的修改。之前的公司也用到Camera2,发现用到的时候还是蛮多的所以记录一下,代码在文章末尾 camera2的结构如下&#x…

Peter算法小课堂—Dijkstra最短路算法

大家好,我们人见人爱、花见花开、车见车爆胎的Peter Pan来啦,hia~hia~hia。今天,我们今天来学习毒瘤的最短路算法啦。啊这……什么是Dijkstra算法?长文警告⚠ 正经点啊 手算样例 大家思考一下,你在手算样例的时候&am…

企业申请sectigo ip https证书

Sectigo(原名Comodo,在整合https证书业务后改名为Sectigo)是一家知名的数字证书提供商,拥有多种类型的数字证书,例如单域名https证书、多域名https证书、通配符https证书、IP https证书和代码签名证书等满足各类用户的…

【自然语言处理】P3 spaCy 与 NLTK(分词、词形还原与词干提取)以及 Porter 和 Snowball

目录 准备工作spaCyNLTK 文本分词spaCyNLTK 词形还原spaCyNLTK 词干提取PorterSnowball stemmers 在自然语言处理(NLP)中,文本分词是将文本拆分为单词或词组的过程,这是理解文本含义和结构的基础。Python中两个流行库——spaCy和N…

ThreadLocal父子线程传递上下文参数

自定义ThreadLocal继承InheritableThreadLocal并且实现childValue方法, 可以在子线程中也使用到主线程设置在ThreadLocal中的数据,如下所示: /*** 使用自定义MyInheritableThreadLocal实现了InheritableThreadLocal重写了childValue的目的* …

2024022期传足14场胜负前瞻

2024022期赛事由英超4场,德甲2场、意甲4场、西甲4场组成。售止时间为2月4日(周日)19点00分,敬请留意: 本期中深盘较多,1.5以下赔率3场,1.5-2.0赔率7场,其他场次是平半盘、平盘。本期…

TCP 协议的相关特性

1. TCP格式 TCP特性:有连接,全双关,面向字节流,可靠传输。(TCP安身立命的本钱,初心就是解决“可靠传输”问题) 其实TCP的特征有很多这里我就简单的介绍几个。 2. 确认应答 其实用来确保可靠性&…

mysql的hash排序和例子

哈希索引(hash index),基于哈希表实现,只有精确匹配索引所有列的查询才有效。对于每⼀⾏数据,存储引擎都会对所有的索引列计算⼀个哈希码(hash code), 哈希码是⼀个较⼩的值,并且不同键值的⾏计算出来的哈希码也不⼀样。哈希索引将…

Java并发基础:CountDownLatch全面解析!

内容概要 CountDownLatch的优点在于能够简洁高效地协调多个线程的执行顺序,确保一组线程都完成后才触发其他线程的执行,适用于资源加载、任务初始化等场景。它提供了清晰的等待/通知机制,易于理解和使用,是提升多线程程序性能和可…

HttpSession

HTTP概述 HTTP无状态协议和服务器端状态管理 HttpSession 一个用户有且最多有一个 HttpSession,并且不会被其他用户访问到。HttpSession 对象在用户第一次访问网站时自动被创建,你可以通过调用 HttpServeltRequest 的 getSession() 方法获得该对象。 …

mybatis基础操作(一)

mybatis介绍 mybatis为半自动的ORM框架 ORM:对象关系映射,将java中的一个对象与数据表中的一行记录一一对应。支持自定义sql,存储过程。 对原有jdbc进行封装,几乎消除所有jdbc代码,让开发者只需关注sql本身。 支持xml和注解配…

如何在 Mac 上重置网络设置

如何在 Mac 上重置网络设置 Mac 几乎在所有时间都非常可靠,但有时您在连接到互联网时可能会遇到困难或浏览速度缓慢。 互联网可能在您的其他设备上正常工作,这可能很烦人。 通常,问题的原因是什么并不明显,甚至根本不存在。 如果…

面试数据结构与算法总结分类+leetcode题目目录【基础版】

🧡🧡🧡算法题目总结: 这里为大家总结数据结构与算法的题库目录,如果已经解释过的题目会标注链接更新,方便查看。 数据结构概览 Array & String 大家对这两类肯定比较清楚的,同时这也是面试…

Java基础—反射

Java基础-反射 前置知识动态语言JVM堆Java引用变量类型编译时类型运行时类型举栗特殊情况 RRTI概念为什么需要RTTI例子 Class类对象前置知识类加载器概念作用 Class类对象的概念Class类对象的总结 总结一下前置知识 反射基础概念为什么要学反射我需要学到什么程度 反射的基础内…

GMT绘图笔记

(1)图框设置。在利用GMT绘制图件时,需要设置边框的类型,字体的大小,标记距离边框的距离。主要涉及的参数有: gmt set MAP_FRAME_TYPE plain/fancy 可以调整边框为火车轨道或者线段。 (2)调整图框的粗细:主要是包含有…

GoogleTest 单元测试

假设我们有两个函数 complexFunction 和 helperFunction,其中 complexFunction 调用了 helperFunction。我们将编写测试 complexFunction 的单元测试,并在调用 helperFunction 的地方打桩。 // 复杂函数示例 int helperFunction(int x) {return x * 2; …

openssl自签名CA根证书、服务端和客户端证书生成并模拟单向/双向证书验证

1. 生成根证书 1.1 生成CA证书私钥 openssl genrsa -aes256 -out ca.key 2048 1.2 取消密钥的密码保护 openssl rsa -in ca.key -out ca.key 1.3 生成根证书签发申请文件(csr文件) openssl req -new -sha256 -key ca.key -out ca.csr -subj "/CCN/STFJ/LXM/ONONE/OU…

WiFi测试的核心思路和主要工具

目录 性能: 最主要的测试工具是2个:Iperf,Chariot 测试setup:OTA VS Cable: 测试数据类型 TCP VS UDP: 抓包工具:Macbook Wireshark: 功能: Wi-Fi Alliance tes…

解决vue3+ts打包,ts类型检查报错导致打包失败,goview打包报错options

最近拉的开源大屏项目goview,在打包的过程中一直报Ts类型报错导致打包失败,项目的打包命令为: “build”: “vue-tsc --noEmit && vite build” 是因为 vue-tsc --noEmit 是 TypeScript 编译器(tsc)的命令&…

Ubuntu 22.04 上安装和使用 Go

1.下载  All releases - The Go Programming Language //https://golang.google.cn/dl/wget https://golang.google.cn/dl/go1.21.6.linux-amd64.tar.gz 2.在下载目录下执行,现在,使用以下命令将文件提取到 “/usr/local ” 位置 sudo tar -C /usr/…