首页
学习
活动
专区
圈层
工具
发布

mysql中int长度的意义

提问: mysql的字段,unsigned int(3), 和unsinged int(6), 能存储的数值范围是否相同。如果不同,分别是多大?...回答: 不同,int(3)最多显示3位无符号整体,int(6)最多显示6位无符号数。 如果你的答案和上面的一致,恭喜你和我犯了一样的错误。...发现,无论是int(3), int(6), 都可以显示6位以上的整数。但是,当数字不足3位或6位时,前面会用0补齐。...查下手册,解释是这样的: MySQL还支持选择在该类型关键字后面的括号内指定整数值的显示宽度(例如,INT(4))。该可选显示宽度规定用于显示宽度小于指定的列宽度的值时从左侧填满宽度。...也就是说,int的长度并不影响数据的存储精度,长度只和显示有关,为了让大家看的更清楚,我们在上面例子的建表语句中,使用了zerofill。

5.6K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    详解 mysql int 类型的长度值问题

    秉着好奇心, 打开了 google ~ 引入大神的解答. mysql 在建表的时候 int 类型后的长度代表什么? 是该列允许存储值的最大宽度吗?...为什么我设置成 int(1), 也一样能存 10,100,1000 呢. 当时我虽然知道 int(1), 这个长度 1 并不代表允许存储的宽度, 但却没有一个合理的解释....或者说对这个长度也没有真正的研究过到底代表什么, 平时都用 int(11), 也不知道为什么要 11 位....所以我在网上查阅了一些资料, 也仔细的看了 mysql 手册关于 int data type 的说法. 以下是每个整数类型的存储和范围 (来自 mysql 手册) ?...我们拿 int 类型为例: int 类型, 占用字节数为 4byte, 学过计算机原理的同学应该知道, 字节 (byte) 并非是计算机存储的最小单位, 还有比字节 (byte) 更小的单位, 也就是位

    5.1K20

    Mysql中int和varchar类型

    int类型: int bigint smallint 和 tinyint 类型,如果创建新表时没有指定 int(M) 中的M时,默认分别是 : int           -------     int...支持选择在该类型关键字后面的括号内指定整数值的显示宽度(例如,INT(4))。...int(M) 在 integer 数据类型中,M 表示最大显示宽度,该可选显示宽度规定用于显示宽度小于指定的列宽度的值时从左侧填满宽度。...在 int(M) 中,M 的值跟 int(M) 所占多少存储空间并无任何关系。和数字位数也无关系, int(3)、int(4)、int(8) 在磁盘上都是占用 4 btyes 的存储空间。...2个字节有16位,无符号从0000 0000 0000 0000(0)到1111 1111 1111 1111(2^16-1) 有符号:(-2^15到2^15-1) mysql中设置varchar长度的问题

    3K10

    MySQL INT、TINYINT、SMALLINT、MEDIUMINT、BIGINT(整数类型)

    整数类型又称数值型数据,数值型数据类型主要用来存储数字。MySQL提供了多种数值型数据类型,不同的数据类型提供不同的取值范围,可以存储的值范围越大,所需的存储空间也会越大。...MySQL 主要提供的整数类型有TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT,其属性字段可以添加 AUTO_INCREMENT 自增约束条件。...下表中列出了 MySQL 中的数值类型。...类型名称说明存储需求TINYINT很小的整数1个字节SMALLINT小的整数2个宇节MEDIUMINT中等大小的整数3个字节INT (INTEGHR)普通大小的整数4个字节BIGINT大整数8个字节从上表中可以看到...整数类型是不带小数部分的数值,现实生活中很多地方需要用到带小数的数值。

    86610

    聊聊Mysql中的int(1)

    昨天有个读者问了我这样一个问题在mysql中建表的时候,我设置一个字段为int类型,长度为1,但是我发现这个字段却可以存储任意长度的数字,这是什么情况?...int 类型占 4 个字节,一个字节是 8 位,也就是说 int 类型在计算机底层是由 32 个 0 跟 1 表示,转化为十进制就是 2 的 32 次方,那么存储范围就是 0~2^32 ,如果带符号位的话就是...Zerofill:零填充,意思就是达不到指定长度后,前面用 0 来填充。 现在再来看看这个int(1)中的1究竟有什么奥秘。这个1跟这个字段能存的数据范围没关系,它也不是限制这个字段的数据长度的。...比如我们将int(1)改成int(3),我们再输入1,实际上显示的是001。所以无论你将 int 类型的长度设为多少并不会影响数据的存储范围。...mysql对于整型的数据类型,不仅给我们提供了int,还提供了tinyint,smallint,mediumint和bigint。

    2.7K20

    mysql类型int长度是11,最多可以有多少条数据?如果超过超过设计值会怎么样?

    mysql类型int长度是11,最多可以有多少条数据?如果超过超过设计值会怎么样大家好,我是星哥,今天查看数据库在表结构中看到id,设计是int,长度是11。...一、首先要区分两个概念:在 MySQL 中,定义字段时写成:INT(11)这里的 11 不是“长度限制”! 它只是显示宽度(Display Width),对实际存储范围没有任何影响。...二、INT 类型的真实存储范围类型字节数有符号(SIGNED)范围无符号(UNSIGNED)范围TINYINT1-128 ~ 1270 ~ 255SMALLINT2-32,768 ~ 32,7670 ~...一般的项目完全够用了四、INT(11) 中的 (11) 有什么用?...以前在 MySQL 的 命令行客户端 或某些工具中,如果字段设置了 ZEROFILL(零填充),会影响显示方式:CREATE TABLE t ( id INT(11) ZEROFILL);INSERT

    1.2K10

    INT类型知多少

    前言: 整型是MySQL中最常用的字段类型之一,通常用于存储整数,其中int是整型中最常用的,对于int类型你是否真正了解呢?本文会带你熟悉int类型相关知识,也会介绍其他整型字段的使用。...我们拿int类型为例: int类型, 占用字节数为4byte, 学过计算机原理的同学应该知道, 字节(byte)并非是计算机存储的最小单位, 还有比字节(byte)更小的单位, 也就是位(bit),一个位就代表一个...计算机存储单位的换算: 1B=8b 1KB=1024B 1MB=1024KB 那么根据int类型允许存储的字节数是4个字节, 我们就能换算出int UNSIGNED(无符号)类型的能存储的最小值为0,...3.int(M)中M的含义与zerofill的使用 我们经常听到这句话:int(M)中的M代表最大显示宽度,"最大显示宽度"我们第一反应是该字段的值最大能允许存放的值的宽度,以为我们建了int(1),就不能存放数据...即int(5)和int(10)可存储的范围一样。 整型字段有个ZEROFILL属性(0填充),在数字长度不够的数据前面填充0,以达到设定的长度。

    1.6K20

    MySql中int(10)与int(11)有什么区别吗?

    最后查出的结果是:这里的M代表的并不是存储在数据库中的具体的长度,以前总是会误以为int(3)只能存储 3个长度的数字,int(11)就会存储 11 个长度的数字,这是大错特错的。...0 2 知识点 int(M) 中的M指示最大显示宽度,最大有效显示宽度是 255,且显示宽度与存储大小或类型包含的值的范围无关。...首先说一下 MySQL 的数值类型,MySQL 支持所有标准 SQL 数值数据类型。...MySQL 类型关键字后面的括号内指定整数值的显示宽度(例如,INT(4))。该可选显示宽度规定用于显示宽度小于指定的列宽度的值时从左侧填满宽度。...0 3 总结 所以,int(2) 与int(11)后的括号中的字符表示显示宽度,整数列的显示宽度与 MySQL 需要用多少个字符来显示该列数值,与该整数需要的存储空间的大小都没有关系,int类型的字段能存储的数据上限依旧是

    6.5K30

    【JVM】Int类型在栈中是否会被缓存?

    前些天一位粉丝加微信好友,询问关于int类型的一张存储结构图,主要是对int类型在方法执行的过程中是否存在缓存的情况有疑问。在交流、探讨的过程中收获很多相关知识。本篇文章就汇总分享一下。...int类型的是否会被缓存 首先看下图(其他公众号文章获得),图中显示int类型在栈中会被复用。 ? 针对引用类型我们知道栈中只存储引用地址,而对应的值存储在堆中,这没什么问题。...而针对int(等基础)类型,变量和值都是存储在栈中(其实也不一定,后面会讲到),那么int类型是否会像字符串常量一样,指向同一个值呢?...经过这一步的分析,我们得知了int类型在JVM操作指令层面的区别,同时也得知即便是int类型,也不一定是变量和值都存储在栈中。...原文链接:《【JVM】Int类型在栈中是否会被缓存?》

    1.8K30

    使用INT4INT类型替换INT8BIGINT类型能够节省多少磁盘空间?

    使用INT4/INT类型替换INT8/BIGINT类型能够节省多少磁盘空间? 最近有人在IRC,Slack和Reddit上讨论使用int4/integer替代int8/bigint能够少4个字节。...这意味着,如果你表中只有4字节的列,无论如何都会使用8字节。如果有2个int4的列,他们将8字节对齐,仅使用这一个8字节。...但是如果有int4,下一个列超过4字节,PG不会将另一个列拆分为“前一个8字节的4个字节的一部分,下一个中的一部分”,一切都将转到下一个8字节块中。...因此可以通过切换到更小的数据类型来使用更少的磁盘空间,但您必须非常小心表中列的顺序。当设计表时,这可能非常容易但一旦部署应用程序就不再合理,现在只是更改架构以适应新功能。 还有一个因素要考虑。...所以在某些情况下,使用int4/int2是有益的。可以通过使用较小的数据类型来节省一些磁盘空间,但是差异并没有那么大。需要仔细规划。

    1.3K40

    int类型和byte类型的强制类型转换

    今天在读《Java网络编程》这本书的第二章 流 时,看到书中有一个地方关于int强制转换为byte类型时应注意的地方。这个地方有点细节,不过就应该把这种细节把握住。...情况是这样的,讲到InputStream的抽象方法read时,说到read返回一个int型,但实际是一个byte型的数据。这点从API也能考证。如图: ?...那么问题来了,int占4个字节,byte占1个字节,我们循环读取的时候将int型数组强制类型转换成byte时,会发生什么情况呢?代码如下: ?...1个字节占8位,既然实际返回的是byte类型的数据,那么强制类型转换int型截取低8位,对数据也不会造成影响。问题就出现在,如果再从byte型转换成int型呢?代码如下: ?...这是因为在int强制转换为byte型数据时,会产生一个-128~127的有符号字节,而不是read方法返回的0~255的无符号字节。这个时候要注意代码应修改为: ? 一个小问题,重在积累。

    4.1K50

    【MySQL 】MySQL 中的 int(11) 到底代表什么意思?

    一、前言   在工作中经常要与 mysql 打交道,但是对 mysql 的各个字段类型一直都是一知半解,因此写本文总结记录一番。 二、简介 ?   ...对于 int 类型的一些基础知识其实上图已经说的很明白了,在这里想讨论下常用的 int(11) 代表什么意思,很长时间以来我都以为这代表着限制 int 的长度为 11 位,直到有天看到篇文章才明白,11...代表的并不是长度,而是字符的显示宽度,在字段类型为 int 时,无论你显示宽度设置为多少,int 类型能存储的最大值和最小值永远都是固定的,这里贴一些原文片段。   ...那么照文中所说,所以无论怎么设置 int 类型的显示宽度,int 所能存储的最大值和最小值是固定的,那么这个显示宽度到底有什么用呢?   ...三、结论 从上个例子我们可以得出以下几个结论:   1、如果一个字段设置了无符号和填充零属性,那么无论这个字段存储什么数值,数值的长度都会与设置的显示宽度一致,如上述例子中的字段 b,插入数值 1 显示为

    4.9K20

    Go语言int类型那么多,到底该用int还是int64?

    在Go语言开发中,我们经常会遇到一个问题:整型类型那么多,int、int8、int16、int32、int64,还有对应的无符号版本,到底该怎么选?...statusCode := int32(200) 不过需要注意,Go语言中进行算术运算时,小类型会被提升为int,所以过于追求小类型反而可能带来频繁的类型转换。...场景1:Web后端API开发 在Web后端开发中,我们经常需要处理请求参数、返回JSON数据。这时候该怎么选?...是最自然的,因为: 数组长度len()返回int 索引计算都是int 不需要考虑跨平台问题 场景3:高性能计算 在处理大数据、高性能计算时,类型选择会影响内存占用和性能: // 处理大量数据时,选择合适的类型...解决方法:转换前检查范围,或者使用math包中的函数。

    51710
    领券