char、vchar、nvarchar 的區別

Unicode字符集就是爲了解決字符集這種不兼容的問題而產生的,它全部的字符都用兩個字節表示,即英文字符也是用兩個字節表示html

若是還爲了這個糾結,就直接看看後面的解說,作決定吧。sql

通常若是用到中文或者其它特殊字符,我就會使用n開頭的類型,不然的話直接使用var開頭的。 spa

 

sql server中的varchar和Nvarchar有什麼區別?code

 

 答:
varchar(n)     
長度爲 n 個字節的可變長度且非 Unicode 的字符數據。n 必須是一個介於 1 和 8,000 之間的數值。存儲大小爲輸入數據的字節的實際長度,而不是 n 個字節。

nvarchar(n)
包含 n 個字符的可變長度 Unicode 字符數據。n 的值必須介於 1 與 4,000 之間。字節的存儲大小是所輸入字符個數的兩倍。


兩字段分別有字段值:我和coffee
那麼varchar字段佔2×2+6=10個字節的存儲空間,而nvarchar字段佔8×2=16個字節的存儲空間。

如字段值只是英文可選擇varchar,而字段值存在較多的雙字節(中文、韓文等)字符時用nvarchar
———————————————————————————————————————————————————

varchar(10)與nvarchar(10)server

前者是非unicode型,存儲字符按1個算(內部空間存儲佔1字節),存儲漢字的話按2個算,
就是能夠存10個字符或者5個漢字
後者是unicode型,存儲什麼都是按1個算(內部空間存儲佔2字節),
就是能夠存10個字符或10個漢字
varchar(10)與nvarchar(10)就是分別佔10個字節和20個字節htm

———————————————————————————————————————————————————blog

char(n)          定長    索引效率高 程序裏面使用trim去除多餘的空白 n 必須是一個介於 1 和 8,000 之間的數值,存儲大小爲 n 個字節
varchar(n)            變長  效率沒char高 靈活 n 必須是一個介於 1 和 8,000 之間的數值。存儲大小爲輸入數據的字節的實際長度,而不是 n 個字節
text(n)            變長 非Unicode數據  
nchar(n)          定長 處理unicode數據類型(全部的字符使用兩個字節表示) n 的值必須介於 1 與 4,000 之間。存儲大小爲 n 字節的兩倍
nvarchar(n)                變長 處理unicode數據類型(全部的字符使用兩個字節表示) n 的值必須介於 1 與 4,000 之間。字節的存儲大小是所輸入字符個數的兩倍。所輸入的數據字符長度能夠爲零
ntext(n)           變長 處理unicode數據類型(全部的字符使用兩個字節表示)  

 

 

 

 

 

 

 

 

 

 

 

來源:https://www.cnblogs.com/net5x/articles/9592295.html索引

相關文章
相關標籤/搜索