1. bytes
bytes = 8 bit
一個(gè)字節(jié)最多可以代表的數(shù)據(jù)長度是2的8次方 11111111 在計(jì)算機(jī)中也就是-128到127忌堂。
2. BIT
BIT #位字段類型
BIT[M] 位字段類型,M表示每個(gè)值的位數(shù)沟于,范圍從1到64池户,如果M被忽略,默認(rèn)為1
3.TINYINT
TINYINT[(M)] [UNSIGNED] [ZEROFILL] M默認(rèn)為4 #很小的整數(shù)订咸。
帶符號(hào)的范圍是-128到127氏涩。無符號(hào)的范圍是0到255蚁鳖。
4. BOOL, BOOLEAN
BOOL磺芭,BOOLEAN #TINYINT(1)的同義詞。
zero值被視為假醉箕。非zero值視為真钾腺。
5. SMALLINT
SMALLINT[(M)] [UNSIGNED] [ZEROFILL] M默認(rèn)為6 #小的整數(shù)。
帶符號(hào)的范圍是-32768到32767讥裤。無符號(hào)的范圍是0到65535放棒。
6. MEDIUMINT
MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL] M默認(rèn)為9 #中等大小的整數(shù)。
帶符號(hào)的范圍是-8388608到8388607己英。無符號(hào)的范圍是0到16777215间螟。
7. INT
INT[(M)] [UNSIGNED] [ZEROFILL] M默認(rèn)為11 #普通大小的整數(shù)。
帶符號(hào)的范圍是-2147483648到2147483647损肛。無符號(hào)的范圍是0到4294967295厢破。
8. BIGINT
BIGINT[(M)] [UNSIGNED] [ZEROFILL] M默認(rèn)為20 #大整數(shù)。
帶符號(hào)的范圍是-9223372036854775808到9223372036854775807治拿。無符號(hào)的范圍是0到18446744073709551615摩泪。
注意:這里的M代表的并不是存儲(chǔ)在數(shù)據(jù)庫中的具體的長度,以前總是會(huì)誤以為int(3)只能存儲(chǔ)3個(gè)長度的數(shù)字劫谅,int(11)就會(huì)存儲(chǔ)11個(gè)長度的數(shù)字见坑,這是大錯(cuò)特錯(cuò)的。
其實(shí)當(dāng)我們?cè)谶x擇使用int的類型的時(shí)候捏检,不論是int(3)還是int(11)荞驴,它在數(shù)據(jù)庫里面存儲(chǔ)的都是4個(gè)字節(jié)的長度,在使用int(3)的時(shí)候如果你輸入的是10贯城,會(huì)默認(rèn)給你存儲(chǔ)位010,也就是說這個(gè)3代表的是默認(rèn)的一個(gè)長度戴尸,當(dāng)你不足3位時(shí),會(huì)幫你不全冤狡,當(dāng)你超過3位時(shí)孙蒙,就沒有任何的影響。
前天有人問我 int(10)與int(11)有什么區(qū)別悲雳,當(dāng)時(shí)覺得就是長度的區(qū)別吧挎峦,現(xiàn)在看,他們之間除了在存儲(chǔ)的時(shí)候稍微有點(diǎn)區(qū)別外合瓢,在我們使用的時(shí)候是沒有任何區(qū)別的坦胶。int(10)也可以代表2147483647這個(gè)值int(11)也可以代表。
要查看出不同效果記得在創(chuàng)建類型的時(shí)候加 zerofill這個(gè)值,表示用0填充顿苇,否則看不出效果的峭咒。
我們通常在創(chuàng)建數(shù)據(jù)庫的時(shí)候都不會(huì)加入這個(gè)選項(xiàng),所以可以說他們之間是沒有區(qū)別的纪岁。