1、CHAR:CHAR儲存定長資料很方便,CHAR欄位上的索引效率級高,比如定義char(10),那麼不論你儲存的資料是否達到了10個位元組,都要佔去10個位元組的空間。
2、VARCHAR:儲存變長資料,但儲存效率沒有CHAR高。如果一個欄位可能的值是不固定長度的,我們只知道它不可能超過10個字元,把它定義為 VARCHAR(10)是最合算的。
3、NCHAR、NVARCHAR從名字上看比前面三種多了個“N”。它表示儲存的是Unicode資料型別的字元。我們知道字元 中,英文字元只需要一個位元組儲存就足夠了,但漢字眾多,需要兩個位元組儲存,英文與漢字同時存在時容易造成混亂,Unicode字符集就是為了解決字符集這 種不相容的問題而產生的,它所有的字元都用兩個位元組表示,即英文字元也是用兩個位元組表示。
4、帶n 的可以儲存 4000個字元,英文字母存在n 型別上也是按兩個位元組計算。不帶n的可以儲存8000個字元,英文字元按一個位元組,中文字按兩個位元組。一般來說,如果含有中文字元,用nchar/nvarchar,如果純英文和數字,用char/varchar。
1、CHAR:CHAR儲存定長資料很方便,CHAR欄位上的索引效率級高,比如定義char(10),那麼不論你儲存的資料是否達到了10個位元組,都要佔去10個位元組的空間。
2、VARCHAR:儲存變長資料,但儲存效率沒有CHAR高。如果一個欄位可能的值是不固定長度的,我們只知道它不可能超過10個字元,把它定義為 VARCHAR(10)是最合算的。
3、NCHAR、NVARCHAR從名字上看比前面三種多了個“N”。它表示儲存的是Unicode資料型別的字元。我們知道字元 中,英文字元只需要一個位元組儲存就足夠了,但漢字眾多,需要兩個位元組儲存,英文與漢字同時存在時容易造成混亂,Unicode字符集就是為了解決字符集這 種不相容的問題而產生的,它所有的字元都用兩個位元組表示,即英文字元也是用兩個位元組表示。
4、帶n 的可以儲存 4000個字元,英文字母存在n 型別上也是按兩個位元組計算。不帶n的可以儲存8000個字元,英文字元按一個位元組,中文字按兩個位元組。一般來說,如果含有中文字元,用nchar/nvarchar,如果純英文和數字,用char/varchar。