NVARCHAR 和VARCHAR區別和使用

一、各自的定義:編碼

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

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

varchar(max)最大2gb字符 使用C#中的DbType.varchar   針對max      DbType.varchar,-1字符編碼

二、區別:table

      ► 從存儲量上考慮, varchar比較節省空間,由於存儲大小爲字節的實際長度,而 nvarchar是雙字節存儲;亂碼

      ► 在使用上,若是存儲內容都是英文字符而沒有漢字等其餘語言符號,建議使用varchar;含有漢字的使用nvarchar,由於nvarchar是使用Unicode編碼,即統一的字符編碼標準,會減小亂碼的出現概率;select

      ►若是你作的項目可能涉及不一樣語言之間的轉換,建議用nvarchar。數據類型

這點要注意:varchar   適合與存儲英文和數字;   nvarchr通常用於存儲中文或其餘語言的輸入,由於   這樣,能夠防止到其餘語言平臺上出現亂碼的問題。數據

舉個例子: create table a (name1 varchar(8)) insert a select '張紅a' --- 存儲長度爲5個字節 insert a select '王一南' ----存儲長度爲6個字節項目

---意思是varchar變長字符數據類型與存儲數據的實際長度是一致的
nvarchar(n):可變長度 Unicode 數據,其最大長度爲 4,000 字符。 字節的存儲大小是所輸入字符個數的兩倍, 就是說它是雙字節來存儲數據的。 若是存儲數據若是存在單字節時,它也是以雙字節來佔用存儲空間的。
舉個例子: create table aa (name1 nvarchar(8)) insert aa select '張紅a' --- 存儲長度爲6個字節

 

nvarchar (10) 裏面的 10 是 10個 國際化字符 的長度, 也就是 能夠存 10個 漢字varchar(10)裏面的 10 ,  至關於 10個 字節, 能夠存 10個 字母或者數字。

相關文章
相關標籤/搜索