MySQL int 类型的长度和范围解惑

MySQL int 类型的长度和范围解惑,第1张

Mysql 建表过程中:

MySQL中int类型占用4个字节[byte(B)],1B有8个位[bit(b)],一个位(b)就代表一个0或者1,那么MySQL中int占用4B,对应位就是 4*8b = 32b 了,也就是说 int 表示的数字 个数 是: 2的32次方

因为字节分有符号和无符号两种,于是 int 有符号 的 范围就是 -2的31次方 到 2的31次方减去1 [?1 为什么不是32次方?] [?2 为什么要减去1?],即 -2147483648 ~ 2147483647; int 无符号(unsigned) 的 范围就是 0 到 2的32次方减去1。

知道了 int 类型的范围后,我们再来看看长度是什么意思。 在MySQL手册中,字段类型的长度用 “M” 表示,表示最大显示宽度。 int 的 最大有效显示宽度是 255。 注意: 此处表示 显示宽度 和 存储大小或类型及范围 无关

参考:

1、 https://blog.csdn.net/weixin_33695082/article/details/92011222

参考以下:

1)create table my_int

(

列名 数据类型 约束,

列名 数据类型 约束,

列名 数据类型 约束

);

注意:

当有多个SQL语句时,需要加上最后边的分号

您好,int(m),integer(m) 32位整数(4字节....)

其实这个m跟INT能表示的范围没有关系,只要你选择了INT,INT是用4个字节表示,1个字节8位,若表示无符号数时可以表示的范围是 0 ------- 232-1 ,你可以存储任何在这个范围内的数字。

但也不是说跟表示完全没关系,mysql中有个zerofll,当建表时选择了0 填充之后存储就会有很大的不同,这时如果你选择的是int(4) 你存储12则数据库中存储的是0012,如果填写12345,此时超过了他的指定宽度则按原样存储。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7338792.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存