创建表的规范 nvarchar2,varchar2

Posted feiyun8616的作坊 (半个程序员and dba)

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了创建表的规范 nvarchar2,varchar2相关的知识,希望对你有一定的参考价值。

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的主要内容,如果未能解决你的问题,请参考以下文章

Oracle中NVARCHAR2与VARCHAR2的差别

CHAR varchar varchar2 nvarchar2

Oracle 中varchar varchar2 nvarchar2 有什么区别?

oracle VARCHAR VARCHAR2 NVARCHAR2的区别

oracle修改varchar2或nvarchar2类型的时间字段为DATE

Oracle数据库中,使用case语句,遇到VARCHAR2与NVARCHAR2问题