1. 程式人生 > >mysql中int(3)與int(11)有什麽區別嗎?

mysql中int(3)與int(11)有什麽區別嗎?

png 不足 次方 表示 分享 什麽 否則 數據庫 SQ

註意:這裏的M代表的並不是存儲在數據庫中的具體的長度,以前總是會誤以為int(3)只能存儲3個長度的數字,int(11)就會存儲11個長度的數字,這是大錯特錯的。

其實當我們在選擇使用int的類型的時候,不論是int(3)還是int(11),它在數據庫裏面存儲的都是4個字節的長度,在使用int(3)的時候如果你輸入的是10,會默認給你存儲位010,也就是說這個3代表的是默認的一個長度,當你不足3位時,會幫你不全,當你超過3位時,就沒有任何的影響。

前天組管問我 int(10)與int(11)有什麽區別,當時覺得就是長度的區別吧,現在看,他們之間除了在存儲的時候稍微有點區別外,在我們使用的時候是沒有任何區別的。int(10)也可以代表2147483647這個值int(11)也可以代表。

要查看出不同效果記得在創建類型的時候加 zerofill這個值,表示用0填充,否則看不出效果的。

我們通常在創建數據庫的時候都不會加入這個選項,所以可以說他們之間是沒有區別的。

That which didn‘t kill me makes me stronger

聲明字段是int類型的那一刻起,int就是占四個字節,一個字節8位,也就是4*8=32,可以表示的數字個數是2的32次方(2^32 = 4 294 967 296個數字)。

4 294 967 296個數字也就是0~4 294 967 295,當然如果區分正負號的話所存的數字會比較小。

技術分享圖片

來看下面的圖片

技術分享圖片

mysql中int(3)與int(11)有什麽區別嗎?