一直以來對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 ...