2013-08-19 47 views
0

我使用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)mysql:int類型的最大值問題

問:

int(4),它是怎麼得到這個值2147483647/4294967295?如果我把int(8),價值是什麼?

+0

http://stackoverflow.com/questions/10255724/incorrect-integer-2147483647-is-inserted-into-mysql –

回答

2

See the MySQL Numeric Type Documentation。這些東西都有詳細記錄。

範圍對於有符號INT是[-2147483648 2147483647]。

注意,在的INT(x)的情況下,x是「顯示寬度」和無關與範圍或空間要求:

MySQL支持用於可選地指定整數數據的顯示寬度的延伸在該類型的基本關鍵字後面的括號中鍵入。例如,INT(4)指定一個顯示寬度爲四位數的INT ... 顯示寬度不限制[或擴展]可存儲在列中的值的範圍。

Mysql int(11) number out of range

+0

使用BIGINT爲64位值。用戶字符串和自定義轉換爲任意精度/大小。 –

1

int(4)一個顯示寬度爲四位的INT。

int(8)一個顯示寬度爲八位的INT。

Minimum Value/Maximum Value是用於int類型的使用4個字節來存儲是相同的。

-21474836482147483647用於簽名,而04294967296用於未簽名。

0

那麼,從瀏覽器控制檯I注意:

Math.pow(2, 4*8)4294967296和一半是2147483648

那些是1關閉的最大(無符號/符號)的整數可以被存儲在使用4個二進制形式8位字節。