sqlserver中定長charn和變長varcharn有什麼區

時間 2021-06-07 01:20:41

1樓:匿名使用者

varchar 對每個英文(ascii)字元都佔用2個位元組,對一個漢字也只佔用兩個位元組

char 對英文(ascii)字元佔用1個位元組,對一個漢字佔用2個位元組

varchar 的型別不以空格填滿,比如varchar(100),但它的值只是"qian",則它的值就是"qian"

而char 不一樣,比如char(100),它的值是"qian",而實際上它在資料庫中是"qian "(qian後共有96個空格,

就是把它填滿為100個位元組)。

由於char是以固定長度的,所以它的速度會比varchar快得多!但程式處理起來要麻煩一點,要用trim之類的函式把兩邊的空格去掉!

[上面的理論是從網上copy來的]

至於用法如下:

在一些長度變化不是很大的欄位應該用char型別,而對長度變化很大的欄位應該用varchar型別了。

2樓:匿名使用者

char和varchar區別在於字元的長短char是10個長度varchar是50個長度

3樓:陽光上的橋

char(n)是定長格式,格式為char(n)的欄位固定佔用n個字元寬度,如果實際存放的資料長度超過n將被擷取多出部分,如果長度小於n就用空字元填充。

varchar(n)是變長格式,這種格式的欄位根據實際資料長度分配空間,不浪費對於的空間,但是搜尋資料的速度會麻煩一點。

一般地說,只要一個表有一個欄位定義為varchar(n)型別,那麼其餘用char(n)定義的欄位實際上也是varchar(n)型別。

如果你的長度本身不長,比如就3~10個字元,那麼使用char(n)格式效率比較高,搜尋速度快。但是如果有的資料很長,有的資料有比較短,比如註冊使用者的簡介這樣的欄位,實在沒有辦法,而且很在乎浪費的空間,那麼就用varchar(n)格式。

sql server 2005中 char()、nchar()、varchar()、nvarchar()有什麼區別?

4樓:智填寶誌願填報

char和nchar一般用於資料長度基本相同的欄位,如手機號都是11位,可以用char(11)。但如果長度不完全一樣,假設有8位的手機號,那會在資料後面自動補3個佔位符,此時如果有like '%phone%' 這樣的模糊查詢就有問題了

n一般用於中文儲存,char 10能存5個漢字或10個字元,nchar能存10個漢字或10個字元。

char的儲存效率比varchar稍微高點,就是要定長,根據不同專案需要吧

5樓:匿名使用者

帶n的,儲存字元個數

不帶n的,儲存位元組個數。

char,nchar是儲存定長位元組或字元,如定義了char(2)的話,

就是佔用了兩個位元組,即使登陸資料的時候登陸了一個1個位元組,db中也是佔用兩個位元組的空間。

varchar,nvarchar是儲存變長位元組或字元,即儲存的位元組或字元數就是實際向db中登陸的位元組或字元數。

6樓:貝博實厲漫

高等教育出版社《資料庫技術及應用》的81頁char

儲存固定長度的字串

最大長度

8000

個位元組varcahr

儲存可變長度的字串

最大長度8000

個位元組nchar

儲存固定長度的unicode字串

最大長度為

4000

個字元nvarchar

儲存可變長度的unicode字串

最大長度為

4000個字元

備註:有“var”字首的都是可變的意思,就是說你在輸入字元時可以輸入任意長度不同的字串

另外,你存名字:中文名就用nvarchar吧英文名就用varchar吧,