问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

mysql int 代表多长

发布网友 发布时间:2022-04-23 16:25

我来回答

2个回答

懂视网 时间:2022-05-01 20:17

详解mysql int类型的长度值

  mysql在建表的时候int类型后的长度代表什么 是该列允许存储值的最大宽度吗 为什么我设置成int(1), 也一样能存10,100,1000呢.

 

  当时我虽然知道int(1),这个长度1并不代表允许存储的宽度,但却没有一个合理的解释. 或者说对这个长度也没有真正的研究过到底代表什么, 平时都用int(11), 也不知道为什么要11位. 所以我在网上查阅了一些资料, 也仔细的看了mysql手册关于int data type的说法.

  以下是每个整数类型的存储和范围(来自mysql手册)
 

  类型

  字节

  最小值

  最大值

  (带符号的/无符号的)

  (带符号的/无符号的)

  TINYINT

  1

  -128

  127

  0

  255

  SMALLINT

  2

  -32768

  32767

  0

  65535

  MEDIUMINT

  3

  -8388608

  8388607

  0

  16777215

  INT

  4

  -2147483648

  2147483647

  0

  4294967295

  BIGINT

  8

  -9223372036854775808

  9223372036854775807

  0

  18446744073709551615

 

  表格一共有四列分别表式:字段类型, 占用字节数, 允许存储的最小值, 允许存储的最大值.

  我们拿int类型为例:

  int类型, 占用字节数为4byte, 学过计算机原理的同学应该知道, 字节(byte)并非是计算机存储的最小单位, 还有比字节(byte)更小的单位, 也就是位(bit),一个位就代表一个0或1; 8个位组成一个字节; 一般字节用大写B来表示byte, 位用小写b来表示bit.

  计算机存储单位的换算:

  1B=8b

  1KB=1024B

  1MB=1024KB
 

  那么根据int类型允许存储的字节数是4个字节, 我们就能换算出int UNSIGNED(无符号)类型的能存储的最小值为0, 最大值为4294967295(即4B=32b, 最大值即为32个1组成);

  接下来我们再说说我们建表时的字段长度到底是怎么一回事.

  CREATE TABLE `test` (
`id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`number` INT( 5 ) NOT NULL
) ENGINE = MYISAM ;

  以test表的number字段为例, 大家看到我建的是int(5)

技术分享
 

  mysql手册中这个长度/值用"M"来表示的. 细心的朋友应该有注意到过mysql手册上有这么一句话:  M指示最大显示宽度。最大有效显示宽度是255。显示宽度与存储大小或类型包含的值的范围无关;

  这句话看上去不太容易理解, 因为这里有个关键词容易让我们混淆, "最大显示宽度"我们第一反应是该字段的值最大能允许存放的值的宽度. 以为我们建了int(1),就不能存放数据10了, 其实不是这个意思.

  这个M=5我们可以简单的理解成为, 我们建立这个长度是为了告诉MYSQL数据库我们这个字段的存储的数据的宽度为5位数,  当然如果你不是5位数(只要在该类型的存储范围之内)MYSQL也能正常存储,  这也就能解释以上标红的话.

  我们把这个字段的"属性"修改为UNSIGNED ZEROFILL看一下效果.

技术分享

  我们看到现在我的number字段, 长度(M)=5, 属性=UNSIGNED ZEROFILL(无符号,用0来填充位数),  设置这个属性后我往表时插入数据,系统会自动把number字段M不够5位的在左侧用0来填充; 效果如下

技术分享
 

  手册上还有这么一句话"当 mysql 为某些复杂的联结(join)生成临时表时,你可能会遇到问题,因为在这种情况下,mysql 信任地认为所有的值均适合原始的列宽度". 这也让我不禁感叹这个宽度到底如何设置比较合适

  但有一点看完该文档你应该清楚的知道, 长度M与你存放的数值型的数的大小无关.

mysqlint类型的长度值mysql在建表的时候int类型后的长度代表什么

标签:技术   rem   title   范围   png   问题   研究   -128   存储   

热心网友 时间:2022-05-01 17:25

int最大长度是11. 如果在建表时不指定字段int类型的长度时,系统则默认生成长度为11的字段。11也是int类型的最大长度,其中第一位表示符号+或者-,后面十位表示数字。 如果指定了长度,该字段其实也是长度为11的字段,因为只要是int类型
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
强奸罪判多少年可以缓刑吗 20句充满着正能量的最励志的英语名言 如何通过cet-4? 去赤道几内亚,需要带什么行李,生活用品,在那边大概生活一年,什么东西... 去赤道几内亚需要准备什么?主要要预防什么疾病?要准备什么预防药品... 可惜!大部分消费者在交易后会取消亚马逊Prime会员资格 想问下 cpu i7 4900mq. gtx765m显卡. 32G内存 能大部分游戏效果开高么... i7 4800MQ i7 4900MQ 能有多大差别? 外星人14,显卡GTX765M。玩... 三星k2200打印机怎么升级 三星k2200打印机怎么升级br? 三星k2200打印机如何双面打? mysql int(M) M是啥意思,最大是多少,多指教 MYSQL INT类型问题 mysql数据库内链查询和外链有什么区别 mysql identity 微软Exchange Activesync账户密码错误,怎么办? 邮票有什么作用? 《骆驼祥子》的经典情节的简介(全文的),作者,国家 骆驼祥子的人生启示是什么。。。 邮票的作用是什么? 《驼驼祥子》的读后感和对作者的了解 骆驼祥子读后感300 不要太好的一个小学生水平就行 冻花蟹的制作方法 邮票是什么,它什么? 骆驼祥子和傅雷家书和起来的读书笔记 潮式冻花蟹怎样整?? 《骆驼祥子》24个章节,每章的简写,主要内容!!,急,~~谢咯哈 邮票是什么东东? 如何 进项税转出 《骆驼祥子》的赏析。 邮票是什么东西? mysql中int(10)代表什么意思? mysql 连接符是什么? MySQL索引有啥好处,怎么合理的添加 2021crv液晶仪表盘样式可以调嘛 mysql中int,bigint,smallint 和 tinyint的区别详细介绍 21款标配的本田crv能升级全液晶仪表? MySQL-mysql bit字段和tinyint字段有什么区别 crv混动低配是液晶屏吗 windows xp 怎么连手机热点? mysql varchar索引和int索引性能哪个好 04款本田crv2.0仪表盘小液晶屏不亮怎么办? windowsXP系统台式机怎样连手机热点? mysql在int表格插入char类型 混动crv液晶盘显示EV是不是代表用电? MYSQL INNODB主键使用varchar和int的区别 本田crv2022年新款什么时候上市?, mysql 定义变量 东风本田crv的液晶无显示是什么原因 本田CRV仪表盘显示不正常该怎么办?08款CRV 仪表盘中的液晶屏乱码 Mysql的BigInt(20),Int(20)以及Bigint(32)有区别吗?