當我們建立數據庫表時,都會根據字段特點選擇適當的數據類型,這次主要講的是關于字符類型,在我們平時的數據庫結構當中,字符類型占絕大多數,如何高效準備地利用數據庫和優化數據庫結構是每個DBA必須掌握的技能。
在SQL Server中,現在主要以SQL Server2005為例。對于字符類型的有:
char:固定長度,存儲ANSI字符,不足的補英文半角空格。
nchar:固定長度,存儲Unicode字符,不足的補英文半角空格
varchar:可變長度,存儲ANSI字符,根據數據長度自動變化。
nvarchar:可變長度,存儲Unicode字符,根據數據長度自動變化。
如果你肯定存儲的數據長度,而且不包中文的,可以選擇char類型。
如果肯定存儲的數據長度,但可能包括中文,可以選擇nchar類型。
如果不確定存儲的數據長度,也有可能有中文,可以選擇nvarchar類型,在SQL Server2005中也是比較常用的字符數據類型。
ANSI主要是以單字節來存儲數據,一般適合英文。而我們常用的漢字需要用兩個字節來存儲,所以就要使用unicode的數據類型,不然讀取出來的數據可能會亂碼。
一個字符數據類型最大8000,如果使用了Unicode來存儲就變成只能存儲4000個字符。
如果存儲的是文章內容等超長文本數據的,可以使用nText類型,也是可變長度的。總是前面凡帶n開頭的表示以unicode來存儲數據,以var前綴的表示可變長。
如果高效利用,就看自己的具體需要,有時為了以后數據結構的變動,常使用nvarchar的比較多。