ORACLE中的varchar2()與nvarchar2()的講解

來源:互聯網
上載者:User

 Oracle中NVARCHAR2和VARCHAR2的區別
【轉】NVARCHAR2和VARCHAR2的區別,從使用角度來看區別在於:NVARCHAR2在計算長度時和字元集相關的,例如資料庫是中文字元集時以長度10為例,則

1、NVARCHAR2(10)是可以存進去10個漢字的,如果用來存英文也只能存10個字元。

2、而VARCHAR2(10)的話,則只能存進5個漢字,英文則可以存10個

CHAR固定長度字元域,最大長度可達2000個位元組    
  NCHAR多位元組字元集的固定長度字元域,長度隨字元集而定,最多為2000個字元或2000個位元組    
  VARCHAR2可變長度字元域,最大長度可達4000個字元    
  NVARCHAR2多位元組字元集的可變長度字元域,長度隨字元集而定,最多為4000個字元或4000個位元組
何時該用CHAR,何時該用varchar2?
  CHAR與VARCHAR2是一對矛盾的統一體,兩者是互補的關係.
  VARCHAR2比CHAR節省空間的,在效率上比CHAR會稍微差一些,即要想獲得效率,就必須犧牲一定的空間,這也就是我們在資料庫設計上常說的‘以空間換效率’。
  VARCHAR2雖然比CHAR節省空間的,但是如果一個VARCHAR2列經常被修改,而且每次被修改的資料的長度不同,這會引起‘行遷移’(Row Migration)現象,而這造成多餘的I/O,是資料庫設計和調整中要儘力避免的,在這種情況下用CHAR代替VARCHAR2會更好一些。

.nvarchar/nvarchar2

nvarchar和nvarchar2是長度不固定的

nvarchar不區分中英文,比如說:你定義了nvarchar(20),你可以存入20個英文字母/漢字或中英文組合,這個20定義的是字元數而不是位元組數

nvarchar2基本上等同於nvarchar,不同在於nvarchar2中存的英文字母也佔兩個位元組

nvarchar/nvarchar2適用於存放中文

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.