mysql中int长度的意义

原创 2016年05月31日 11:50:25

提问:

mysql的字段,unsigned int(3), 和unsinged int(6), 能存储的数值范围是否相同。如果不同,分别是多大?

回答:

不同,int(3)最多显示3位无符号整体,int(6)最多显示6位无符号数。
如果你的答案和上面的一致,恭喜你和我犯了一样的错误。

真实情况:

我们建立下面这张表:

CREATE TABLE `test` (
    `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    `i1` int(3) unsigned zerofill DEFAULT NULL,
    `i2` int(6) unsigned zerofill DEFAULT NULL,
    PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8

插入一些数据后
这里写图片描述
发现,无论是int(3), int(6), 都可以显示6位以上的整数。但是,当数字不足3位或6位时,前面会用0补齐。

查下手册,解释是这样的:
MySQL还支持选择在该类型关键字后面的括号内指定整数值的显示宽度(例如,INT(4))。该可选显示宽度规定用于显示宽度小于指定的列宽度的值时从左侧填满宽度。显示宽度并不限制可以在列内保存的值的范围,也不限制超过列的指定宽度的值的显示。
也就是说,int的长度并不影响数据的存储精度,长度只和显示有关,为了让大家看的更清楚,我们在上面例子的建表语句中,使用了zerofill。

结论:

无论是unsigned int(3)或 unsiend int(6),存储的都是4字节无符号整数, 也就是0~2^32。

相关文章推荐

详解mysql int数字类型的长度值大小上限

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

mysql中int、bigint、smallint 和 tinyint的区别与长度的含义

最近使用mysql数据库的时候遇到了多种数字的类型,主要有int,bigint,smallint和tinyint。其中比较迷惑的是int和smallint的差别。今天就在网上仔细找了找,找到如下内容,...

MySQL中int(11)最大长度是多少?

今天在添加数据的时候,发现当数据类型为 int(11) 时,我当时让用户添加数据时,最大输入的长度为11位,结果,添加数据添加不上,导致出现问题,我又改为最大长度为10位,结果验证9个1的时候是正常的...

mysql——数据库设计中int与varchar中的长度含义

一、int中的长度 提问: MySQL的字段,unsigned int(3), 和unsinged int(6), 能存储的数值范围是否相同。如果不同,分别是多大? 回答...

mysql数据库int(5)以及varchar(20)长度表示的是什么?

在mysql5.x版本的数据库中: int类型数据的字节大小是固定的4个字节; 但是int(5)和int(11)区别在于,显示的数据位数一个是5位一个是11位,在开启zerofill(填充零)情况...

C++中int/long/pointer长度

0x00 信仰很久很久以前,在一个记不清的地方,一个记不清的地方看过一句曾经然我奉为圣经的话:~不论32还是64位平台,C++中指针的长度始终与long类型长度一致~ 那些年,也曾单纯,那些年也曾懵...
  • ufolr
  • ufolr
  • 2016年10月14日 00:04
  • 1203

int型长度

Ø       基本数据类型C语言中只有4中基本数据类型——整型、浮点型、指针和聚合类型(如数组和结构等);所有其他类型都是从这4种基本类型的某种变化或组合派生而来。一、整型家族整型家族包括char、...

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

提问: MySQL的字段,unsigned int(3), 和unsinged int(6), 能存储的数值范围是否相同。如果不同,分别是多大? 回答: 不同,int(3)最多显示3位无符号整体...

Mysql中,int(10)和int(11)的区别

首先说一下mysql的数值类型,MySQL支持所有标准SQL数值数据类型。这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLO...
  • lyd518
  • lyd518
  • 2014年03月07日 13:08
  • 46456

mysql int(10)的含义

int(M) M表示最大显示宽度。最大有效显示宽度是255。显示宽度与存储大小或类型包含的值的范围无关。...
  • yeruby
  • yeruby
  • 2015年06月06日 20:27
  • 2424
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:mysql中int长度的意义
举报原因:
原因补充:

(最多只允许输入30个字)