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資料...