數據庫中char、nvarchar和varchar區別

數據庫中char、nvarchar和varchar區別

 

char 爲固定長度字節

varchar[(n)]  
     長度爲      n      個字節的可變長度且非      Unicode      的字符數據。n      必須是一個介於      1      和      8,000      之間的數值。存儲大小爲輸入數據的字節的實際長度,而不是      n      個字節。所輸入的數據字符長度可以爲零。varchar      在      SQL-92      中的同義詞爲      char      varying      或      character      varying。  
   
     nvarchar(n)  
     包含      n      個字符的可變長度      Unicode      字符數據。n      的值必須介於      1      與      4,000      之間。字節的存儲大小是所輸入字符個數的兩倍。所輸入的數據字符長度可以爲零。nvarchar      在      SQL-92      中的同義詞爲      national      char      varying      和      national      character      varying。   
n 表示字符個數

nvarchar:  
     不管是一個字符還是一個漢字,都存爲2個字節  
     varchar:  
     漢字是2個字節,其他字符存爲1個字節  

 

通俗一點就是varchar適合輸入英文和數字,nvarchar一般用做中文或其它語言的輸入,這樣到別的語系不會出現亂碼:))

2.
N表示Unicode常量,可以解決多語言字符集之間的轉換問題,見聯機幫助

姓名,和房間通常都是用varchar這個數據類型

 

解釋一下:
drop proc a

varchar(n):變長型字符數據類型,存儲最長長度爲8,000 個字符。

舉個例子:
create table a (name1 varchar(8))
insert a select '張紅a'
--- 存儲長度爲5個字節,餘下的3個字節全部釋放
insert a select '王一南'
----存儲長度爲6個字節,餘下的2個字節全部釋放
---意思是varchar變長字符數據類型與存儲數據的實際長度是一致的

nvarchar(n):可變長度 Unicode 數據,其最大長度爲 4,000 字符。
字節的存儲大小是所輸入字符個數的兩倍,
就是說它是雙字節來存儲數據的。
如果存儲數據如果存在單字節時,它也是以雙字節來佔用存儲空間的。

舉個例子:
create table aa (name1 nvarchar(8))
insert aa select '張紅a'
---存儲長度爲6個字節,餘下的2個字節全部釋放
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章