1. 程式人生 > 其它 >mysql int(1) 和 int(10) 和 int(11)區別

mysql int(1) 和 int(10) 和 int(11)區別

mysql int(1) 和 int(10) 和 int(11)區別

CREATE TABLE IF NOT EXISTS `test2` (

`t1` int(5) NOT NULL,

`t2` int(11) unsigned zerofill NOT NULL,

`t3` int(11) unsigned NOT NULL,

`t4` int(11) zerofill NOT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE = utf8_unicode_ci;
本質上沒有區別

int後面的長度表示為顯示長度,當然,你的資料如果大於了顯示的長度,mysql不可能把你資料給擷取,所以這就是為什麼設定了int(1)可是還能存較大數的原因。

int型別取值範圍-2147493648 到 2147493647,這個時候需要11位,如果設定了unsigned無符號,這個時候能儲存範圍為0-4294967295 ,這個時候需要10位,所以在建表的時候int(10) 和int(11) 可以用來當作語意來使用。

設定zerofill填充0的時候,預設會設定unsigned無符號,這個時候int後面的長度將起到效果,比如設定int(4) 存入資料3 ,顯示0003。

總結:

int後面的長度為顯示長度,用的最多的是配合zerofill來填充0.