nvarchar與varchar的區別

2021-08-25 05:00:19 字數 1325 閱讀 7327

一直以來對varchar和nvarchar不怎麼了解,也聽經理說過,他讓我盡量用varchar,我說為什麼啊,他說了一下,我不是太明白,哈哈!還是自己來找找吧!重網上找了別人的解釋,感覺有點頓悟!!

1.

varchar[(n)]

長度為 n 個位元組的可變長度且非 unicode 的字元資料。n 必須是乙個介於 1 和 8,000 之間的數值。儲存大小為輸入資料的位元組的實際長度,而不是 n 個位元組。所輸入的資料字元長度可以為零。varchar 在 sql-92 中的同義詞為 char varying 或 character varying。

nvarchar(n)

包含 n 個字元的可變長度 unicode 字元資料。n 的值必須介於 1 與 4,000 之間。位元組的儲存大小是所輸入字元個數的兩倍。所輸入的資料字元長度可以為零。nvarchar 在 sql-92 中的同義詞為 national char varying 和 national character varying。

n 表示字元個數

nvarchar:

不管是乙個字元還是乙個漢字,都存為2個位元組

varchar:

漢字是2個位元組,其他字元存為1個位元組

通俗一點就是varchar適合輸入英文和數字,nvarchar一般用做中文或其它語言的輸入,這樣到別的語系不會出現亂碼:))

2.

n表示unicode常量,可以解決多語言字符集之間的轉換問題,見聯機幫助

姓名,和房間通常都是用varchar這個資料型別

解釋一下:

drop proc a

varchar(n):變長型字元資料型別,儲存最長長度為8,000 個字元。

舉個例子:

create table a (name1 varchar(8))

insert a select '張紅a'

--- 儲存長度為5個位元組,餘下的3個位元組全部釋放

insert a select '王一南'

----儲存長度為6個位元組,餘下的2個位元組全部釋放

---意思是varchar變長字元資料型別與儲存資料的實際長度是一致的

nvarchar(n):可變長度 unicode 資料,其最大長度為 4,000 字元。

位元組的儲存大小是所輸入字元個數的兩倍,

就是說它是雙位元組來儲存資料的。

如果儲存資料如果存在單位元組時,它也是以雙位元組來占用儲存空間的。

舉個例子:

create table aa (name1 nvarchar(8))

insert aa select '張紅a'

nvarchar與varchar的區別

varchar n 長度為 n 個位元組的可變長度且非 unicode 的字元資料。n 必須是乙個介於 1 和 8,000 之間的數值。儲存大小為輸入資料的位元組的實際長度,而不是 n 個位元組。所輸入的資料字元長度可以為零。varchar 在 sql 92 中的同義詞為 char varying ...

nvarchar與varchar的區別

一直以來對varchar和nvarchar不怎麼了解,也聽經理說過,他讓我盡量用varchar,我說為什麼啊,他說了一下,我不是太明白,哈哈!還是自己來找找吧!重網上找了別人的解釋,感覺有點頓悟!1.varchar n 長度為 n 個位元組的可變長度且非 unicode 的字元資料。n 必須是乙個介...

nvarchar與varchar的區別

varchar n 長度為 n 個位元組的可變長度且非 unicode 的字元資料。n 必須是乙個介於 1 和 8,000 之間的數值。儲存大小為輸入資料的位元組的實際長度,而不是 n 個位元組。所輸入的資料字元長度可以為零。varchar 在 sql 92 中的同義詞為 char varying ...