注意:這里的M代表的并不是存儲在數(shù)據(jù)庫中的具體的長度,以前總是會誤以為int(3)只能存儲3個長度的數(shù)字闷板,int(11)就會存儲11個長度的數(shù)字澎灸,這是大錯特錯的。
其實當我們在選擇使用int的類型的時候遮晚,不論是int(3)還是int(11)性昭,它在數(shù)據(jù)庫里面存儲的都是4個字節(jié)的長度,在使用int(3)的時候如果你輸入的是10县遣,會默認給你存儲位010,也就是說這個3代表的是默認的一個長度糜颠,當你不足3位時,會幫你不全艺玲,當你超過3位時括蝠,就沒有任何的影響鞠抑。
前天組管問我 int(10)與int(11)有什么區(qū)別饭聚,當時覺得就是長度的區(qū)別吧,現(xiàn)在看搁拙,他們之間除了在存儲的時候稍微有點區(qū)別外秒梳,在我們使用的時候是沒有任何區(qū)別的。int(10)也可以代表2147483647這個值int(11)也可以代表箕速。
要查看出不同效果記得在創(chuàng)建類型的時候加 zerofill這個值酪碘,表示用0填充,否則看不出效果的盐茎。
我們通常在創(chuàng)建數(shù)據(jù)庫的時候都不會加入這個選項兴垦,所以可以說他們之間是沒有區(qū)別的。
That which didn't kill me makes me stronger
聲明字段是int類型的那一刻起,int就是占四個字節(jié)探越,一個字節(jié)8位狡赐,也就是4*8=32,可以表示的數(shù)字個數(shù)是2的32次方(2^32?=?4 294 967 296個數(shù)字)钦幔。
4 294 967 296個數(shù)字也就是0~4 294 967 295枕屉,當然如果區(qū)分正負號的話所存的數(shù)字會比較小。
來看下面的圖片