在oracle資料庫中為什麼使用varchar2型別而不

時間 2022-02-07 00:35:15

1樓:

現代的資料庫為了節省空間都會提供變長資料型別,varchar2是變長資料型別可以根據實際長度儲存,節省空間。

char和varchar則是定長資料型別,即使實際字元個數小於資料型別定義長度仍然按照資料型別定義長度開闢空間。

使用上在比較的時候有區別,可參考樓上的例子。

2樓:匿名使用者

varchar2是可變長度,char一般是單字元才用的比如男或女,varchar它是定義長度型別,多了就浪費資源少了就不行了....

3樓:匿名使用者

例如:v_char varchar2(10);

c_char char(10);

varchar2:對於定義長度的變數或表中的欄位的長度可變,就是定義varchar2(10),你只有一個字元時,變數或表中的欄位裡面就只儲存了1個字元,不補空格,v_char='a';length(v_char)=1。

c_char/varchar:是定長資料:賦值c_char='a',實際上是:c_char='a ',length(c_char)=10。

如果作比較的話如果使用c_char/varchar,你會比較痛苦的if c_char=v_char then 這樣的語句出來的肯定是:false否(else)裡面的,要對c_char實行rtrim才是:真:

if rtrim(c_char)=v_char then 這才返回:ture

oracle 中 char 、varchar 、 varchar2 的區別以及他們的優劣,什麼時候用?懂的來

4樓:匿名使用者

char 定義了長度就是死的 不足長度的他會自己動用空字元填滿varchar 沒用過

varchar2用的最多 一般都使用它 據說比char慢 - -我以前做過一個程式就不小心建成char型別 然後存字串進去 用jdbc取出來發現每個字串都被用空格填成一樣長度的 每次比較都要用trim() 很噁心的

5樓:匿名使用者

char固定長度 varchar varchar2 好像沒什麼區別

6樓:

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。

oracle資料型別varchar2和varchar的區別

7樓:匿名使用者

varchar -- 存放定長的字元資料,最長2000個字元;varchar2 -- 存放可變長字元資料,最大長度為4000字元。

varchar2把所有字元都佔兩位元組處理(一般情況下),varchar只對漢字和全形等字元佔兩位元組,數字,英文字元等都是一個位元組;

varchar2把空串等同於null處理,而varchar仍按照空串處理;

varchar2字元要用幾個位元組儲存,要看資料庫使用的字符集,

varchar2和varchar的目前沒有區別,不過ocacle以後的版本就不支援varchar型別,如果想新版本的資料庫相容就不要用varchar,如果想和其它資料庫相容就不要用varchar2

大部分情況下建議使用varchar2型別,可以保證更好的相容性。

8樓:匿名使用者

1.varchar2把所有字元都佔兩位元組處理(一般情況下),varchar只對漢字和全形等字元佔兩位元組,數字,英文字元等都是一個位元組;

2.varchar2把空串等同於null處理,而varchar仍按照空串處理;

3.varchar2字元要用幾個位元組儲存,要看資料庫使用的字符集,

比如gbk,漢字就會佔兩個位元組,英文1個

如果是utf-8,漢字一般佔3個位元組,英文還是1個。

但是一般情況下,我們都認為是兩個位元組處理,因為oracle安裝時候預設我們都選擇gbk的編碼格式,但是我們在頁面做輸入字串長度的校驗的時候,還是以資料庫設計欄位最大長度除3來作為最大長度-----防止資料庫移植時設定不同編碼格式;

比如:varchar2(10),一般情況下最多存放5個漢字,10個字元

在oracle中varchar和varchar2有什麼區別?

9樓:雲端的金槍魚

區別點:

varchar只對漢字和全形等字元佔兩位元組,數字,英文字元等都是一個位元組。

varchar2把空串等同於null處理,而varchar仍按照空串處理。

varchar2把所有字元都佔兩位元組處理(一般情況下),並且字元要用幾個位元組儲存,要看資料庫使用的字符集。

簡介

oracle database,又名oracle rdbms,或簡稱oracle。是甲骨文公司的一款關聯式資料庫管理系統。它是在資料庫領域一直處於領先地位的產品。

可以說oracle資料庫系統是目前世界上流行的關聯式資料庫管理系統,系統可移植性好、使用方便、功能強,適用於各類大、中、小、微機環境。它是一種高效率、可靠性好的 適應高吞吐量的資料庫解決方案。

軟體技術特點

技術層次深:如果期望進入it服務或者產品公司(類似畢博、dell、ibm等),oracle技術能夠幫助提高就業的深度。oracle技術已經成為全球每個it公司必選的軟體技術之一,熟練掌握oracle技術能夠為從業人員帶來技術應用上的優勢,同時為it技術的深入應用起到非常 關鍵的作用。

掌握 oracle技術,是it從業人員瞭解全面資訊化整體解決方案的基礎。

總結

oracle資料庫是由美國甲骨文設計的一款關於關聯式資料庫管理的軟體,具有強大且全面的資料管理功能,學習起來也比較繁瑣,一旦學有所成,就是這方面的精英。在it行業,這款軟體的用處很大,任何對於資料管理有要求的企業都會多多少少用到一些相關的內容。

10樓:匿名使用者

--varchar,varchar2

聯絡:1.varchar/varchar2用於儲存可變長度的字串

比如varchar(20),存入字串'abc',則資料庫中該欄位只佔3個位元組,而不是20個位元組

2.size 的最大值是 4000,而最小值是 1,其值表示位元組數,比如

varchar(20)表示最大可以存放20個位元組的內容

區別:1.varchar2把所有字元都佔兩位元組處理(一般情況下),varchar只對漢字和全形等字元佔兩位元組,數字,英文字元等都是一個位元組;

2.varchar2把空串等同於null處理,而varchar仍按照空串處理;

3.varchar2字元要用幾個位元組儲存,要看資料庫使用的字符集,

比如gbk,漢字就會佔兩個位元組,英文1個

如果是utf-8,漢字一般佔3個位元組,英文還是1個。

但是一般情況下,我們都認為是兩個位元組處理,因為oracle安裝時候預設我們都選擇gbk的編碼格式,但是我們在頁面做輸入字串長度的校驗的時候,還是以資料庫設計欄位最大長度除3來作為最大長度-----防止資料庫移植時設定不同編碼格式;

比如:varchar2(10),一般情況下最多存放5個漢字,10個字元

11樓:

1.varchar2把所有字元都佔兩位元組處理(一般情況下),varchar只對漢字和全形等字元佔兩位元組,數字,英文字元等都是一個位元組;

2.varchar2把空串等同於null處理,而varchar仍按照空串處理;

3.varchar2字元要用幾個位元組儲存,要看資料庫使用的字符集,大部分情況下建議使用varchar2型別,可以保證更好的相容性。

12樓:蒼狼_白鹿

二者的區別如下:

1,varchar2把所有字元都佔兩位元組處理(一般情況下),varchar只對漢字和全形等字元佔兩位元組,數字,英文字元等都是一個位元組;

2,varchar2把空串等同於null處理,而varchar仍按照空串處理;

3,varchar2字元要用幾個位元組儲存,要看資料庫使用的字符集。

大部分情況下建議使用varchar2型別,可以保證更好的相容性。

oracle中varchar和varchar2的區別

13樓:請叫我召哥

歸結如下:

1.varchar2把所有字元都佔兩位元組處理(一般情況下),varchar只對漢字和全形等字元佔兩位元組,數字,英文字元等都是一個位元組;

2.varchar2把空串等同於null處理,而varchar仍按照空串處理;

3.varchar2字元要用幾個位元組儲存,要看資料庫使用的字符集,

大部分情況下建議使用varchar2型別,可以保證更好的相容性。

varchar2是oracle提供的獨特的資料型別

oracle保證在任何版本中該資料型別向上和向下相容

但不保證varchar,這是因為varchar是標準sql提供的資料型別

有可能隨著sql標準的變化而改變.

varchar是被廢棄的型別,oracle目前都推薦使用varchar2

varchar也可以用,但不確保未來的版本是否還支援

oracle中如何資料庫,oracle中如何新建一個資料庫

oracle裡面不叫資料庫了,叫建立一個名稱空間建立表空間的語法是 create tablespace tablespacenamedatafile filename size integer k m autoextend off on 建立使用者 create user scce identifi...

sql資料庫和oracle資料庫哪個好

兄弟,聽我的。肯定學習oracle。原因 1 oracle是商用的最廣泛的關係型資料庫管理系統,廣泛應用於銀行 電信 電力 社保等各個領域。特別是對於unix和linux平臺,sqlserver怎麼用啊?我想你學習,肯定為了將來應用,或者工作,你的簡歷裡面寫oracle和sqlserver完全是不一...

oracle資料庫中text型別用什麼型別表示

text在其他資料庫中是儲存大文字的型別,在oracle中用clob型別表示。建立包含clob型別的表 create table test id int,name clob 在clob型別中插入資料 與往varchar2中插入並無區別 insert into test values 1,badkan...