当前位置:首页 > 科技  > 软件

你对MySQL的int(11)真的了解吗?

来源: 责编: 时间:2024-02-01 12:52:16 317观看
导读最近在网上看到一篇关于int(3)和int(11)区别的帖子,我第一反应这不就是它们之间主要涉及存储整型数据时所需的位数,即3位和11位的差异。然而,经过详细阅读文章并进行进一步的资料查询和测试后,我才发现我一直以来对于int(

最近在网上看到一篇关于int(3)和int(11)区别的帖子,我第一反应这不就是它们之间主要涉及存储整型数据时所需的位数,即3位和11位的差异。然而,经过详细阅读文章并进行进一步的资料查询和测试后,我才发现我一直以来对于int(3)的理解存在误差。今天,我打算与家人分享这一新的认识。Mcd28资讯网——每日最新资讯28at.com

图片mysql-int.jpgMcd28资讯网——每日最新资讯28at.com

MYSQL int 数据存储范围

首先,需要明确的是,int(3)和int(11)都是表示整数类型,而不是定义整数的存储长度。在MySQL中,INT类型占据4个字节(32位),可以存储范围是-2^31到2^31-1(约-2.1亿到2.1亿),这个范围是固定的,不受括号中数字的影响。Mcd28资讯网——每日最新资讯28at.com

显示宽度

int(3)和int(11) 区别在于显示宽度的影响。当我们定义一个字段为int(3)时,这个数字表示的是在使用ZEROFILL填充字符时的显示宽度,而不是实际存储的整数位数。使用ZEROFILL会在数字不足指定宽度时,在前面用零进行填充。Mcd28资讯网——每日最新资讯28at.com

我们可以在mysql(5.7)中创建数据查看下具体的效果:Mcd28资讯网——每日最新资讯28at.com

创建表:Mcd28资讯网——每日最新资讯28at.com

CREATE TABLE `int_test1` (  `int_3` int(3) ,  `int_11` int(11) ,  `int_zf_3` int(3)  ZEROFILL ,  `int_zf_11` int(11)  ZEROFILL );

添加数据:Mcd28资讯网——每日最新资讯28at.com

INSERT INTO int_test1(int_3,int_11,int_zf_3,int_zf_11) VALUES (1,1,1,1),(2365,2365,2365,2365);

查看数据:Mcd28资讯网——每日最新资讯28at.com

图片图片Mcd28资讯网——每日最新资讯28at.com

_20240127224156.jpgMcd28资讯网——每日最新资讯28at.com

可以看到,int() 括号中的数字是在位数不足时如果使用ZEROFILL的话会在前面用零进行填充,补齐到括号中数字的位数。Mcd28资讯网——每日最新资讯28at.com

注意事项

  • 使用ZEROFILL填充字段 时插入负数报错

因为ZEROFILL属性只适用于非负整数。所以当我们插入负数时会报错。Mcd28资讯网——每日最新资讯28at.com

图片图片Mcd28资讯网——每日最新资讯28at.com

我们打开表的DDl,就可以看到,我们设置ZEROFILL的时候他会自动设置为unsigned(无符号)Mcd28资讯网——每日最新资讯28at.com

图片图片Mcd28资讯网——每日最新资讯28at.com

  • ZEROFILL只在整数类型上有效,对于其他数据类型(如浮点数)不适用。
  • 在mysql8.0 中,只有设置了ZEROFILL,才能看到int(),否则都是int

实际应用

我们在实际生产环境使用查询的时候通常要把数据库的int数据转化为java对象的Integer,所以ZEROFILL在实际生产中使用的很少,其次我们需要给数据补齐位数的时候通常是在程序中做处理,不会依赖数据库,这样我们的业务才能更灵活。Mcd28资讯网——每日最新资讯28at.com

总结

在数据库设计中,INT(3)和INT(11)的区别主要在于它们控制输出时的显示宽度。实际的存储大小是相同的,都占用4个字节。而括号中的数字在非ZEROFILL的情况下,只是指定了输出时的最小宽度,不足时会用空格填充。在ZEROFILL的情况下,还会影响零填充的总宽度。因此,在选择使用INT(3)还是INT(11)时,主要考虑的是对数据的显示控制需求。Mcd28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-70479-0.html你对MySQL的int(11)真的了解吗?

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: Java中的并发编程模型及其应对策略

下一篇: 面试官:说一下零拷贝技术的实现原理?

标签:
  • 热门焦点
  • 一加首款折叠屏!一加Open渲染图出炉:罕见单手可握小尺寸

    8月5日消息,此前就有爆料称,一加首款折叠屏手机将会在第三季度上市,如今随着时间临近,新机的各种消息也开始浮出水面。据悉,这款新机将会被命名为“On
  • 三言两语说透设计模式的艺术-简单工厂模式

    一、写在前面工厂模式是最常见的一种创建型设计模式,通常说的工厂模式指的是工厂方法模式,是使用频率最高的工厂模式。简单工厂模式又称为静态工厂方法模式,不属于GoF 23种设计
  • 线程通讯的三种方法!通俗易懂

    线程通信是指多个线程之间通过某种机制进行协调和交互,例如,线程等待和通知机制就是线程通讯的主要手段之一。 在 Java 中,线程等待和通知的实现手段有以下几种方式:Object 类下
  • 十个简单但很有用的Python装饰器

    装饰器(Decorators)是Python中一种强大而灵活的功能,用于修改或增强函数或类的行为。装饰器本质上是一个函数,它接受另一个函数或类作为参数,并返回一个新的函数或类。它们通常用
  • 2023年,我眼中的字节跳动

    此时此刻(2023年7月),字节跳动从未上市,也从未公布过任何官方的上市计划;但是这并不妨碍它成为中国最受关注的互联网公司之一。从2016-17年的抖音强势崛起,到2018年的“头腾
  • 10天营收超1亿美元,《星铁》比《原神》差在哪?

    来源:伯虎财经作者:陈平安即便你没玩过《原神》,你一定听说过的它的大名。恨它的人把《原神》开服那天称作是中国游戏史上最黑暗的一天,有粉丝因为索尼在PS平台上线《原神》,怒而
  • 新电商三兄弟,“抖快红”成团!

    来源:价值研究所作 者:Hernanderz 随着内容电商的概念兴起,抖音、快手、小红书组成的“新电商三兄弟”成为业内一股不可忽视的势力,给阿里、京东、拼多多带去了巨大压
  • 华为Mate 60保护壳曝光:硕大后置相机模组 凸起程度有惊喜

    这段时间以来,关于华为新旗舰的爆料日渐密集。据此前多方爆料,今年华为将开始恢复一年双旗舰战略,除上半年推出的P60系列外,往年下半年的Mate系列也将
  • iQOO Neo8系列今日官宣:首发天玑9200+ 全球安卓最强芯!

    在昨日举行的的联发科新一代旗舰芯片天玑9200+的发布会上,iQOO官方也正式宣布,全新的iQOO Neo8系列新品将全球首发搭载这款当前性能最强大的移动平台
Top