varchar2() 与 nvarchar2() 与 char() 与 nchar()区别与联系
2016-08-11 19:26
405 查看
在Oracle中,使用时候遇到字符串的类型的时候一般都会遇到在选择 varchar2 与 nvarchar2 的时候那么在这里进行一下比较,
首先对于与两个类型的理解是
VARCHAR2 可变长度的字符串 最大长度4000 bytes 可做索引的最大长度749
NVARCHAR2
根据字符集而定的可变长度字符串 最大长度4000 bytes
1、NVARCHAR2(10)是可以存进去10个汉字的,如果用来存英文也只能存10个字符。
2、而VARCHAR2(10)的话,则只能存进5个汉字,英文则可以存10个
CHAR固定长度字符域,最大长度可达2000个字节
NCHAR多字节字符集的固定长度字符域,长度随字符集而定,最多为2000个字符或2000个字节
VARCHAR2可变长度字符域,最大长度可达4000个字符
NVARCHAR2多字节字符集的可变长度字符域,长度随字符集而定,最多为4000个字符或4000个字节
对于char 与 varchar来说:
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适用于存放中文
首先对于与两个类型的理解是
VARCHAR2 可变长度的字符串 最大长度4000 bytes 可做索引的最大长度749
NVARCHAR2
根据字符集而定的可变长度字符串 最大长度4000 bytes
1、NVARCHAR2(10)是可以存进去10个汉字的,如果用来存英文也只能存10个字符。
2、而VARCHAR2(10)的话,则只能存进5个汉字,英文则可以存10个
CHAR固定长度字符域,最大长度可达2000个字节
NCHAR多字节字符集的固定长度字符域,长度随字符集而定,最多为2000个字符或2000个字节
VARCHAR2可变长度字符域,最大长度可达4000个字符
NVARCHAR2多字节字符集的可变长度字符域,长度随字符集而定,最多为4000个字符或4000个字节
对于char 与 varchar来说:
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适用于存放中文
相关文章推荐
- char、varchar、 nchar、nvarchar之间区别与联系
- nchar , char , nvarchar , varchar 的区别
- SQL中 char,nchar,varchar,nvarchar,text,ntext的区别
- char、varchar、text和nchar、nvarchar、ntext的区别
- char、varchar、nchar、nvarchar的区别
- char、varchar、text和nchar、nvarchar、ntext的区别
- char、varchar、text和nchar、nvarchar、ntext的区别
- SQL中char、varchar 和nchar、nvarchar的区别
- char、varchar、text和nchar、nvarchar、ntext的区别
- char、varchar、text和nchar、nvarchar、ntext的区别
- SQL中char、varchar、text和nchar、nvarchar、ntext的区别
- char、varchar、text和nchar、nvarchar、ntext的区别
- sql server数据类型char和nchar,varchar和nvarchar,text和ntext的区别
- nvarchar和varchar,char,nchar有什么区别?
- SQL:char、varchar、text和nchar、nvarchar、ntext的区别
- char nchar varchar nvarchar 区别
- SQL中char、varchar 和nchar、nvarchar的区别
- char,varchar,text,nchar,nvarchar,ntext的区别
- char、varchar、text和nchar、nvarchar、ntext的区别
- 数据库-SQL中char、varchar、text和nchar、nvarchar、ntext的区别