1. 程式人生 > >創建表的規範 nvarchar2,varchar2

創建表的規範 nvarchar2,varchar2

字符集 acl oracle 矛盾 tails 可變 文字 jin 實踐

1,這個真沒見過什麽最佳實踐,都是變長的,這些都是研發根據業務需求自己設定啊。

如果需要多語種支持就用NVARCHAR2(或者漢語),如果只是單語種(英語)就varchar2 。

2.

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適用於存放中文

http://blog.csdn.net/yiqijinbu/article/details/6602481

創建表的規範 nvarchar2,varchar2