Unicode字符集就是爲了解決字符集這種不兼容的問題而產生的,它全部的字符都用兩個字節表示,即英文字符也是用兩個字節表示html
若是還爲了這個糾結,就直接看看後面的解說,作決定吧。sql
通常若是用到中文或者其它特殊字符,我就會使用n開頭的類型,不然的話直接使用var開頭的。 spa
sql server中的varchar和Nvarchar有什麼區別?code
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數據類型(全部的字符使用兩個字節表示) |