ORACLE中的varchar2()与nvarchar2()的讲解
2016-05-25 08:41
513 查看
http://blog.csdn.net/yiqijinbu/article/details/6602481
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适用于存放中文
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适用于存放中文
相关文章推荐
- Oracle物化视图创建全过程(转)
- Jdeveloper不能连接oracleXE
- Oracle读取和修改数据块的过程 专家
- ORACLE 里面的LIKE 语句的详细作用格式什么呀
- Oracle 如何创建和使用全文索引
- Oracle 查询死锁并解锁的终极处理方法
- Oracle 使用TOAD实现导入导出Excel数据
- Oracle中sys和system用户、系统权限和角色的区别
- Oracle学习笔记八 表空间
- Oracle学习笔记九 数据库对象
- Oracle学习笔记十 使用PL/SQL
- Oracle学习笔记十一 游标
- Oracle学习笔记十二 子程序(存储过程、自定函数)和程序包
- Oracle学习笔记十三 触发器
- Oracle学习笔记六 SQL常用函数
- Oracle学习笔记五 SQL命令(三):Group by、排序、连接查询、子查询、分页
- Oracle学习笔记四 SQL命令(二):SQL操作语言类别
- Oracle学习笔记三 SQL命令
- CentOS 6.4下安装Oracle 11gR2(x64)
- ORA-28000: the account is locked的解决办法