開發過程當中,新來的小朋友問到: MySQL見表過程當中,字段類型爲int的長度是什麼意思?最大值是 999999999 嗎?html
雖然知道 int(1) 這個並不表示只能表示 0-9 等,可是替換到 int(11) 的時候思惟有時候會緩不過來,直到有一次需求要求 指定字符長度 的時候才恍然大悟, int(6) 就是 000001 ~ 099999 等等,可是依舊能夠表示 12345678 等數字mysql
Mysql 建表過程當中:sql
MySQL中int類型佔用4個字節[byte(B)],1B有8個位[bit(b)],一個位(b)就表明一個0或者1,那麼MySQL中int佔用4B,對應位就是 4*8b = 32b 了,也就是說 int 表示的數字 個數 是: 2的32次方。htm
由於字節分有符號和無符號兩種,因而 int 有符號 的 範圍就是 -2的31次方 到 2的31次方減去1 [?1 爲何不是32次方?] [?2 爲何要減去1?],即 -2147483648 ~ 2147483647; int 無符號(unsigned) 的 範圍就是 0 到 2的32次方減去1。開發
知道了 int 類型的範圍後,咱們再來看看長度是什麼意思。 在MySQL手冊中,字段類型的長度用 「M」 表示,表示最大顯示寬度。 int 的 最大有效顯示寬度是 255。 注意: 此處表示 顯示寬度 和 存儲大小或類型及範圍 無關get
類型 | 佔用字節數 | 有符號取值範圍 | 無符號取值範圍 |
---|---|---|---|
TINYINT | 1 | -128 ~ 127 | 0 ~ 255 |
SMALLINT | 2 | -32768 ~ 32767 | 0 ~ 65535 |
MEDIUMINT | 3 | -8388608 ~ 8388607 | 0 ~ 16777215 |
INT | 4 | -2147483648 ~ 2147483647 | 0 ~ 4294967295 |
BIGINT | 8 | -2^63 ~ 2^63-1 | 0 ~ 2^64-1 |