日期和時(shí)間數(shù)據(jù)類型
MySQL數(shù)據(jù)類型 含義
date 3字節(jié)萧求,日期夸政,格式:2014-09-18
time 3字節(jié)榴徐,時(shí)間匀归,格式:08:42:30
datetime 8字節(jié)酪碘,日期時(shí)間,格式:2014-09-18 08:42:30
timestamp 4字節(jié)徙赢,自動(dòng)存儲(chǔ)記錄修改的時(shí)間
year 1字節(jié)探越,年份
數(shù)值數(shù)據(jù)類型
整型
MySQL數(shù)據(jù)類型 含義(有符號(hào))
tinyint 1字節(jié),范圍(-128~127)
smallint 2字節(jié)枕屉,范圍(-32768~32767)
mediumint 3字節(jié)鲤氢,范圍(-8388608~8388607)
int 4字節(jié),范圍(-2147483648~2147483647)
bigint 8字節(jié)哨颂,范圍(+-9.22*10的18次方)
上面定義的都是有符號(hào)的相种,當(dāng)然了,也可以加上unsigned關(guān)鍵字寝并,定義成無符號(hào)的類型,那么對(duì)應(yīng)的取值范圍就要翻翻了斤蔓,比如:
tinyint unsigned的取值范圍為0~255镀岛。
浮點(diǎn)型
MySQL數(shù)據(jù)類型 含義
float(m, d) 4字節(jié),單精度浮點(diǎn)型喇伯,m總個(gè)數(shù)拨与,d小數(shù)位
double(m, d) 8字節(jié)艾猜,雙精度浮點(diǎn)型捻悯,m總個(gè)數(shù)淤毛,d小數(shù)位
decimal(m, d) decimal是存儲(chǔ)為字符串的浮點(diǎn)數(shù)
我在MySQL中建立了一個(gè)表,有一列為float(5, 3)姓言;做了以下試驗(yàn):
1.插入123.45678蔗蹋,最后查詢得到的結(jié)果為99.999;
2.插入123.456餐塘,最后查詢結(jié)果為99.999皂吮;
3.插入12.34567,最后查詢結(jié)果為12.346蜂筹;
所以,在使用浮點(diǎn)型的時(shí)候候齿,還是要注意陷阱的闺属,要以插入數(shù)據(jù)庫中的實(shí)際結(jié)果為準(zhǔn)。
字符串?dāng)?shù)據(jù)類型
MySQL數(shù)據(jù)類型 含義
char(n) 固定長(zhǎng)度亚皂,最多255個(gè)字符
varchar(n) 可變長(zhǎng)度国瓮,最多65535個(gè)字符
tinytext 可變長(zhǎng)度,最多255個(gè)字符
text 可變長(zhǎng)度禁漓,最多65535個(gè)字符
mediumtext 可變長(zhǎng)度孵睬,最多2的24次方-1個(gè)字符
longtext 可變長(zhǎng)度,最多2的32次方-1個(gè)字符
1.char(n)和varchar(n)中括號(hào)中n代表字符的個(gè)數(shù)掰读,并不代表字節(jié)個(gè)數(shù)叭莫,所以當(dāng)使用了中文的時(shí)候(UTF8)意味著可以插入m個(gè)中文雇初,但是實(shí)際會(huì)占用m*3個(gè)字節(jié)减响。
2.同時(shí)char和varchar最大的區(qū)別就在于char不管實(shí)際value都會(huì)占用n個(gè)字符的空間,而varchar只會(huì)占用實(shí)際字符應(yīng)該占用的空間+1呻畸,并且實(shí)際空間+1<=n悼院。
3.超過char和varchar的n設(shè)置后,字符串會(huì)被截?cái)唷?br>
4.char的上限為255字節(jié)据途,varchar的上限65535字節(jié),text的上限為65535位衩。
5.char在存儲(chǔ)的時(shí)候會(huì)截?cái)辔膊康目崭袢巯簦瑅archar和text不會(huì)。
6.varchar會(huì)使用1-3個(gè)字節(jié)來存儲(chǔ)長(zhǎng)度贮缕,text不會(huì)俺榆。
其它類型
1.enum(“member1″, “member2″, … “member65535″)
enum數(shù)據(jù)類型就是定義了一種枚舉,最多包含65535個(gè)不同的成員定嗓。當(dāng)定義了一個(gè)enum的列時(shí)萍桌,該列的值限制為列定義中聲明的值。如果列聲明包含NULL屬性上炎,則NULL將被認(rèn)為是一個(gè)有效值,并且是默認(rèn)值辛块。如果聲明了NOT NULL润绵,則列表的第一個(gè)成員是默認(rèn)值胞谈。
2.set(“member”, “member2″, … “member64″)
set數(shù)據(jù)類型為指定一組預(yù)定義值中的零個(gè)或多個(gè)值提供了一種方法,這組值最多包括64個(gè)成員卿捎。值的選擇限制為列定義中聲明的值径密。