NVARCHAR 和VARCHAR區別和使用

2021-09-05 22:25:21 字數 1202 閱讀 2391

1、各自的定義:

► nvarchar(n) : 包含   n   個字元的可變長度   unicode   字元資料。n   的值必須介於   1   與   4,000   之間。位元組的儲存大小是所輸入字元個數的兩倍。所輸入的資料字元長度可以為零。

► varchar[(n)]:   長度為   n   個位元組的可變長度且非   unicode   的字元資料。n   必須是乙個介於   1   和   8,000   之間的數值。儲存大小為輸入資料的位元組的實際長度,而不是   n   個位元組。所輸入的資料字元長度可以為零。

varchar(max)最大2gb字元 使用c#中的dbtype.varchar   針對max      dbtype.varchar,-1

2、區別:

► 從儲存方式上,nvarchar是按字元儲存的,而 varchar是按位元組儲存的;

► 從儲存量上考慮, varchar比較節省空間,因為儲存大小為位元組的實際長度,而 nvarchar是雙位元組儲存;

► 在使用上,如果儲存內容都是英文本元而沒有漢字等其他語言符號,建議使用varchar;含有漢字的使用nvarchar,因為nvarchar是使用unicode編碼,即統一的字元編碼標準,會減少亂碼的出現機率;

►如果你做的專案可能涉及不同語言之間的轉換,建議用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個位元組

char varchar和nvarchar的區別

1.char 適用於長度固定,一般不含中文的情況。char區分中英文,英文佔1個位元組,中文佔2個位元組。比如 char 20 你只能插入20個字母或者10個漢字。即使你插入abc,不足20個位元組,資料庫也會在abc後自動插入17個空格補足20個位元組 2.varchar 適用於長度不固定,一般不...

Char Varchar和Nvarchar的區別

char和varchar這兩種型別是我們經常使用的資料型別,但是在使用的過程中也沒有特別的去注意他們有什麼樣的區別,nvarchar相對與char和varchar就不是很常用。通過一次技術的分享和在網際網路上查詢一些知識,讓我對這些數值型別有了深刻的認識。char 是計算機程式語言中只可容納單個字元...

MySql中varchar和varchar的區別

看了新公司的資料庫設計,有些問題思考了一下,寫這篇文章也就記錄這個問題的思考過程。首先從占用空間進行比較,varchar 10 宣告10個位元組,資料儲存時額外乙個位元組的長度字首 varchar 1000 宣告1000個位元組,如果資料長度大於255,長度字首是兩個位元組。而實際varchar資料...