我使用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)
,价值是多少?
答案 0 :(得分:2)
See the MySQL Numeric Type Documentation。这些都有很好的记录。
签名
INT
的范围是[-2147483648,2147483647]。请注意,在
INT(x)
的情况下,x是“显示宽度”,与范围或空间要求无关:MySQL支持扩展,可以选择在类型的base关键字后面的括号中指定整数数据类型的显示宽度。例如,INT(4)指定显示宽度为四位的INT ... 显示宽度不会约束[或扩展]可以存储在列中的值的范围。
答案 1 :(得分:1)
int(4)
INT,显示宽度为四位数。
int(8)
一个显示宽度为八位的INT。
Minimum Value/Maximum Value
类型, int
是相同的。
-2147483648
至2147483647
已签名,0
至4294967296
已签名。
答案 2 :(得分:0)
好吧,从浏览器控制台我注意到:
Math.pow(2, 4*8)
为4294967296
,其中一半为2147483648
这些是最大(无符号/有符号)整数的1,可以使用4个8位字节以二进制形式存储。