雖然一個(gè)CHAR或VARVHAR的最大長度可以到255,我認(rèn)為大于20的CHAR是幾乎用不到的——很少有大于20個(gè)字節(jié)長度的固定長度的東東吧?不是固定長度的就用VARCHAR!大于100的VARCHAR也是幾乎用不到的——比這更大的用TEXT就好了。TINYTEXT,最大長度為255,占用空間也是(實(shí)際長度 1);TEXT,最大長度65535,占用空間是(實(shí)際長度 2);MEDIUMTEXT,最大長度16777215,占用空間是(實(shí)際長度 3);LONGTEXT,最大長度4294967295,占用空間是(實(shí)際長度 4)。為什么“ 1”?“ 2”?“ 3”?“ 4”?你要是還不知道就該打PP了。這些可以用在論壇啊、新聞啊,什么的,用來保存文章的正文。根據(jù)實(shí)際情況的不同,選擇從小到大的不同類型。
四、枚舉和集合類型。
枚舉(ENUM)類型,最多可以定義65535種不同的字符串從中做出選擇,只能并且必須選擇其中一種,占用存儲(chǔ)空間是一個(gè)或兩個(gè)字節(jié),由枚舉值的數(shù)目決定;集合(SET)類型,最多可以有64個(gè)成員,可以選擇其中的零個(gè)到不限定的多個(gè),占用存儲(chǔ)空間是一個(gè)到八個(gè)字節(jié),由集合可能的成員數(shù)目決定。
舉個(gè)例子來說,在SQLServer中,你可以節(jié)約到用一個(gè)Bit類型來表示性別(男/女),但MySQL沒有Bit,用TINTINT?不,可以用ENUM(帥哥,美眉)!只有兩種選擇,所以只需一個(gè)字節(jié)——跟TINYINT一樣大,但卻可以直接用字符串帥哥和美眉來存取。真是太方便啦!
好了,MySQL的數(shù)據(jù)類型介紹得差不多,我的建庫策略也隨著介紹數(shù)據(jù)類型介紹給大家一些。但這只是其中一部分,篇幅有限,不能再細(xì)說;其他的,就靠各人在對(duì)數(shù)據(jù)類型理解的基礎(chǔ)上,多多實(shí)踐、多多討論。