對于程序中的一般字符串類型的字段,SQL Server中有char、varchar、nchar、nvarchar四種類型來對應,那么這四種類型有什么區別呢,這里做一下對比。
1.定長或變長
所謂定長就是長度固定,當要保存的數據長度不夠時將自動在其后面填充英文空格,使長度達到相應的長度;有var前綴的,表示是實際存儲空間是動態變化的,比如varchar,nvarchar變長字符數據則不會以空格填充。
2.Unicode或非Unicode
數據庫中,英文字符只需要一個字節存儲就足夠了,但漢字和其他眾多非英文字符,則需要兩個字節存儲。如果英文與漢字同時存在,由于占用空間數不同,容易造成混亂,導致讀取出來的字符串是亂碼。Unicode字符集就是為了解決字符集這種不兼容的問題而產生的,它所有的字符都用兩個字節表示,即英文字符也是用兩個字節表示。而前綴n就表示Unicode字符,比如nchar,nvarchar,這兩種類型使用了Unicode字符集。
3.幾種數據類型的存儲的最大容量
char,varchar 最多8000個英文,4000個漢字
nchar,nvarchar 最多可存儲4000個字符,無論英文還是漢字
新聞熱點
疑難解答