varchar 與 char vachar2的區別

2021-08-28 11:34:14 字數 981 閱讀 1335

區別:

varchar 與 char 區別 varchar 對每個英文 (ascii) 字元都占用 2 個位元組 , 對乙個漢字也只占用兩個位元組 . 而 char 對英文 (ascii) 字元占用 1 個位元組 , 對乙個漢字占用 2 個位元組 .

2 . char 的長度是固定的,而 varchar2 的長度是可以變化的, 比如,儲存字串「 abc" ,對於 char (20) ,表示你儲存的字元將佔 20 個位元組 ( 包括 17 個空字元 ) ,而同樣的 varchar2 (20) 則只占用 3 個位元組的長度, 20 只是最大值,當你儲存的字元小於 20 時,按實際長度儲存。

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

4 .目前 varchar 是 varchar2 的同義詞。工業標準的 varchar 型別可以儲存空字串,但是 oracle 不這樣做,儘管它保留以後這樣做的權利。 oracle 自己開發了乙個資料型別 varchar2 ,這個型別不是乙個標準的 varchar ,它將在資料庫中 varchar 列可以儲存空字串的特性改為儲存 null 值。如果你想有向後相容的能力, oracle 建議使用 varchar2 而不是 varchar 。

何時該用 char ,何時該用 varchar2 ?

char 與 varchar2 是一對矛盾的統一體,兩者是互補的關係 .

varchar2 比 char 節省空間,在效率上比 char 會稍微差一些,即要想獲得效率,就必須犧牲一定的空間,這也就是我們在資料庫設計上常說的『以空間換效率』。

varchar2 雖然比 char 節省空間,但是如果乙個 varchar2 列經常被修改,而且每次被修改的資料的長度不同,這會引起『行遷移』 (row migration) 現象,而這造成多餘的 i/o ,是資料庫設計和調整中要盡力避免的,在這種情況下用 char 代替 varchar2 會更好一些。

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