2017年1月19日 星期四

RDB - 文字型態的資料要用什麼樣的格式儲存? char, varchar, nchar, nvarchar??

參考網址:
https://dotblogs.com.tw/topcat/archive/2008/03/04/1144.aspx


定義:
charnchar『宣告的是固定的長度』,因此如果宣告char(5),但是只放a這個字,那麼就會補另外4個空白,會補空白補滿是他的特性,而nchar(5)也是會放滿5個字,但是每個字無論中英數都會用2個Bytes來存放


varcharnvarchar都是『不定長度』,因此如果宣告varchar(5),但是只放a這個字,那麼就會放一個a,不會補空白。而如果宣告nvarhcar(5)那還是只放a這個字,但是會用2Bytes來存放。如果放了【中】這個中文字,在varchar會占用2個位子,但是nvarchar指占用1個位子。


結論:
在規畫上,只要存放的資料有可能有中文,就會加n。而除非確定資料固定會是幾位不變,不然資料長度不特定就會宣告加上var