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.hqwc.cn/news/448697.html

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

相关文章

项目开发 多行编辑

问题 项目开发中,如何进行多行编辑 详细问题 笔者使用IDEA,Android Studio进行项目开发时,由于代码冗余,修改过程中若是逐一删除或编辑,效率相对低,如何进行多行删除或编辑 本文将提供IDEA,A…

【深度学习】基于PyTorch架构神经网络学习总结(基础概念基本网络搭建)

神经网络整体架构 类似于人体的神经元 神经网络工作原来为层次结构,一层一层的变换数据。如上述示例有4层,1层输入层、2层隐藏层、1层输出层神经元:数据的量或矩阵的大小,如上述示例中输入层中有三个神经元代表输入数据有3个特征…

C语言中的指针详解

大家好,今天给大家介绍C语言中的指针详解,文章末尾附有分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!可进群免费领取。 **指针是C语言中的一个重要概念,它提供了一种直接访问内存地址…

某赛通电子文档安全管理系统 UploadFileToCatalog SQL注入漏洞复现

0x01 产品简介 某赛通电子文档安全管理系统(简称:CDG)是一款电子文档安全加密软件,该系统利用驱动层透明加密技术,通过对电子文档的加密保护,防止内部员工泄密和外部人员非法窃取企业核心重要数据资产,对电子文档进行全生命周期防护,系统具有透明加密、主动加密、智能…

Redis——事件

Redis服务器是一个事件驱动程序,服务器需要处理以下两种事件: 文件事件(file event):Redis服务器通过套接字与客户端(或者其他Redis服务器)进行连接,而文件事件就是服务器对套接字操作的抽象(linux下一切皆文件,返回的…

unity角色触摸转向

1、挂载脚本到角色的父物体A上 2 、以屏幕左边的触摸为移动,右边为转向操作 3、加载角色时,将角色的父物体设置为A,须将角色的位置和角度置0 using System; using System.Collections; using System.Collections.Generic; using UnityEngin…

【C++初阶】--入门基础(二)

目录 一.C输出与输入 二.缺省参数 1.概念 2.缺省参数分类 (1) 全缺省参数 (2)半缺省参数 三.函数重载 1.概念 2.C支持函数重载的原理--名字修饰 四.引用 1.概念 2.语法 3.引用的特性 (1)引用在定义时必须初始化 (2)引用时不能改变指向 (3)一个变量…

Faster-Whisper 实时识别电脑语音转文本

Faster-Whisper 实时识别电脑语音转文本 前言项目搭建环境安装Faster-Whisper下载模型编写测试代码运行测试代码实时转写脚本 参考 前言 以前做的智能对话软件接的Baidu API,想换成本地的,就搭一套Faster-Whisper吧。 下面是B站视频实时转写的截图 项…

Vite与Webpack打包内存溢出问题优雅处理方式

Vite与Webpack打包内存溢出问题处理 文章目录 Vite与Webpack打包内存溢出问题处理1. Vite1. 打包错误提示2. 命令行方式解决3. 配置环境变量方式解决1. 设置变量2. 配置系统的环境变量 2. Webpack1. 打包错误提示2. 命令行方式解决3. 配置环境变量方式解决1. 设置变量2. 配置系…

Cocos XR的WebBox实现流程

1. 正常3D场景下的webview 1.1 组件角色 Cocos Creator正常3D场景下只有在UI组件才支持webview,即作为下图中的UI Nodes(Canvas Node)的子节点,和3D组件是隔离开的,不能显示在3D空间中,UI Nodes(Canvas Node)是一个平面内的矩形…

计算机视觉-PCV包、Vlfeat库、Graphviz库的下载安装配置及问题解决(使用anaconda3 python 3.8.5)

目录 一、PCV包配置 二、Vlfeat配置 三、在PCV包的sift.py文件中对路径进行修改 四、以上步骤所需注意的错误 五、Graphviz配置 一、PCV包配置 1.下载PCV包,点开网址直接下载安装包(不用解压),下载之后将安装包放在任意目录位置https://codeload.github.com/Li-Shu14…

【Unity3D小技巧】Unity3D中UI控制解决方案

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 在开发中总是会控制UI界面,如何优雅的控制UI界面是…