mysql int能存多少数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql int能存多少数据相关的知识,希望对你有一定的参考价值。

mysql的int根据计算机的内部字长和编译器的版本,在内存中可能占2或4个字节。在一般电脑中,int占用32字节,32比特,数据范围为-2147483648~2147483647[-2^31~2^31-1];在微型机中,int占用32字节,16比特,数据范围为-32768~32767[-2^15~2^15-1]。

扩展资料:

如果从mysql中获取的数超出了int的范围,将会被解释为float。同样如果执行的SQL运算结果超出了int范围,也会返回float。要明示地将一个值转换为int,需要使用SQL语句convert(int,数值)来强制转换。

如果浮点数超出了整数范围(通常为+/-2.15e+9=2^31),则结果不确定,因为没有足够的精度使浮点数给出一个确切的整数结果。在此情况下没有警告,甚至没有任何通知!

参考技术A

MySQL中中的整数类型int主要有如下几种:

1、tinyint 的范围是-128~127;

2、int的范围是-2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647) 的整型数据(所有数字),存储大小为4个字节;

3、bigint的范围是 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节;

4、smallint unsigned的范围是 –2^15(2^15表示2的15次幂) 到2^15 – 1,即 –32768 到 32767;

5、smallint 的范围是 0 到 2^16 – 1,即 0 到 65535,存储的字节是2个字节。

扩展资料

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组成)。

参考技术B MySQL中中的整数类型int主要有如下几种:

tinyint 的范围是-128~127;

int的范围是-2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647) 的整型数据(所有数字),存储大小为4个字节;

bigint的范围是 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节;

smallint unsigned的范围是 –2^15(2^15表示2的15次幂) 到2^15 – 1,即 –32768 到 32767;

smallint 的范围是 0 到 2^16 – 1,即 0 到 65535,存储的字节是2个字节。本回答被提问者采纳

mysql中int长度的意义 int

问题:

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


 

 

不同,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一张表到底能存多少数据?

mysql一张表到底能存多少数据?

mysql一张表最多能存多少数据

面试题:mysql 一棵 B+ 树能存多少条数据?

mysql最多存多少条数据

sql server一个表能存多少条记录