實驗說明varchar2和char最大長度

2021-04-28 21:58:29 字數 1493 閱讀 6734

實驗說明varchar2和char最大長度 引言

區別:

1.char的長度是固定的,而varchar2的長度是可以變化的, 比如,儲存字串「abc",對於char (20)

,表示你儲存的字元將佔20個位元組(包括17個空字元),而同樣的varchar2 (20)則只占用3個位元組的長度

,20只是最大值,當你儲存的字元小於20時,按實際長度儲存。

2.char的效率比varchar2的效率稍高。

3.目前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會更好一些。

實驗說明varchar2和char最大長度

1.實驗說明varchar2最大長度:

sql> create table test3 (v2 varchar2(4001));

create table test3 (v2 varchar2(4001))

*error at line 1:

ora-00910: specified length too long for its datatype

可見4001個bite太大了

sql> create table test3 (v2 varchar2(4000));

table created.

可見varchar2的最大長度是4000bite。

2.實驗說明char最大長度:

sql> create table test2 (v2 char(2001));

create table test2 (c char(2001))

*error at line 1:

ora-00910: specified length too long for its datatype

可見4001個bite太大了

sql> create table test1 (c char(2000));

table created.

可見char的最大長度是2000bite。

varchar和varchar2還有char的區別

varchar,varchar2 聯絡 1.varchar varchar2用於儲存可變長度的字串 比如varchar 20 存入字串 abc 則資料庫中該字段只佔3個位元組,而不是20個位元組 2.size 的最大值是 4000,而最小值是 1,其值表示位元組數,比如 varchar 20 表示最...

char varchar和varchar2的區別

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

char varchar和varchar2的比較

在mysql 中char 和 varchar 都是儲存字串的,區別在於char有固定的長度,而varchar屬於可變長的字元型別。目前varchar和varchar2是同義詞,工業標準的varchar型別可以儲存空字串,但是oracle不這樣做,儘管它保留以後這樣做的權利。oracle自己開發了乙個...