mysql:int类型的最大值问题

时间:2013-08-19 09:42:12

标签: mysql

我使用mysql创建了两个字段text(varchar)number(int)。但我不确定varchar() int()对于varchar()的大小,我在这里检查了http://dev.mysql.com/doc/refman/5.0/en/char.html,并知道我是否放varchar(4) ,表示:最多可容纳4个字符。但对于int(4),我在这里查了一下:http://dev.mysql.com/doc/refman/5.0/en/integer-types.html,据说:Maximum Value:(Signed/Unsigned)(2147483647/4294967295)

问题:

对于int(4),它是如何获得此值2147483647/4294967295的?如果我放int(8),价值是多少?

3 个答案:

答案 0 :(得分:2)

See the MySQL Numeric Type Documentation。这些都有很好的记录。

  
    

签名INT的范围是[-2147483648,2147483647]。

         

请注意,在INT(x)的情况下,x是“显示宽度”,与范围或空间要求无关:

         

MySQL支持扩展,可以选择在类型的base关键字后面的括号中指定整数数据类型的显示宽度。例如,INT(4)指定显示宽度为四位的INT ... 显示宽度不会约束[或扩展]可以存储在列中的值的范围。

  

Mysql int(11) number out of range

答案 1 :(得分:1)

int(4) INT,显示宽度为四位数。

int(8)一个显示宽度为八位的INT。

对于使用4个字节进行存储的Minimum Value/Maximum Value类型,

int是相同的。

-21474836482147483647已签名,04294967296已签名。

答案 2 :(得分:0)

好吧,从浏览器控制台我注意到:

Math.pow(2, 4*8)4294967296,其中一半为2147483648

这些是最大(无符号/有符号)整数的1,可以使用4个8位字节以二进制形式存储。