char、vchar、nvarchar 的區別


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

如果還為了這個糾結,就直接看看后面的解說,做決定吧。

一般如果用到中文或者其它特殊字符,我就會使用n開頭的類型,否則的話直接使用var開頭的。 

 

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

 

 答:
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)

前者是非unicode型,存儲字符按1個算(內部空間存儲占1字節),存儲漢字的話按2個算,
就是可以存10個字符或者5個漢字
后者是unicode型,存儲什么都是按1個算(內部空間存儲占2字節),
就是可以存10個字符或10個漢字
varchar(10)與nvarchar(10)就是分別占10個字節和20個字節

———————————————————————————————————————————————————

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM