BIGINT(8)是mysql可以存储的最大整数吗?
我有一些现在比INT更大的数字可以处理。
这有些尴尬,但是我真的不知道BIGINT(8)究竟是什么意思。 8是最大值还是最大值?
所以BIGINT(1)只能是一个数字? 还是BIGINT(1)还有别的? 我认为tinyint(1)max是127,那怎么办?
BIGINT最大的是什么? 什么是我可以存储在MySQL中作为一个整数的最大数字?
数字表示它是如何显示的 – 它不影响数据的存储方式。
从手册 :
MySQL支持另一种扩展,用于在types的基本关键字(例如INT(4))之后的括号内指定整数数据types的显示宽度。 这个可选的显示宽度可以被应用程序用来显示宽度小于为该列指定的宽度的整数值,方法是用空格填充它们。 (也就是说,这个宽度出现在结果集返回的元数据中,是否使用取决于应用程序。)
显示宽度不限制可存储在列中的值的范围,也不限制显示宽度超过为列指定的值的位数。 例如,指定为SMALLINT(3)的列具有通常的SMALLINT范围-32768至32767,并且三个字符所允许的范围之外的值使用三个以上的字符显示。
BIGINT总是8个字节,可以存储-9223372036854775808到9223372036854775807(带符号)或0到18446744073709551615(无符号)。
你回答是在这个概述 。 BIGINT的确是8个字节。 一个TinyInt只有1。
顺便说一句,我不认为从-9223372036854775808
到9223372036854775807
的范围非常尴尬,这是+/- 2 ^ 63 :)。
这个数字只是在显示时定义了数字的宽度。 看看MySQL手册的数值types的大小 。
括号之间的数字是“显示宽度”,与数据types实际可以存储的数字范围无关。
BIGINT的范围是-9223372036854775808到9223372036854775807.无符号范围是0到18446744073709551615。
你可以在这里find更多的信息: http : //dev.mysql.com/doc/refman/5.4/en/numeric-type-overview.html
要存储一个128位整数,可以使用BINARY(16)。
对于252:
select权(CONCAT(REPEAT(“\ 0”,16),UNHEX(CONV(252,10,16))),16);
或等同地:
SELECT UNHEX(RIGHT(CONCAT(REPEAT(“0”,32),HEX(252)),32));
(但MySQL整数计算是64位)
另见最近的IPv6函数INET6_ATON()和INET6_NTOA(), http: 。