oracle中的varchar2存储中文,varchar2存储汉字

NVARCHAR2和VARCHAR2的区别,从使用角度来看区别在于: NVARCHAR2在计算长度时和字符集相关, 例如数据库是中文字符集时,以长度10为例,则 NVARCHAR2(10)可以存进去10个汉字,如果用来存英文也只能存10个字符。 VARCHAR2(10)只能存进5个汉字,英文则可以存10个 。 *********************************************************************** CHAR固定长度字符域,最大长度可达2000个字节 NCHAR多字节字符集的固定长度字符域,长度随字符集而定,最多为2000个字符或2000个字节 VARCHAR2可变长度字符域,最大长度可达4000个字符 NVARCHAR2多字节字符集的可变长度字符域,长度随字符集而定,最多为4000个字符或4000个字节 *********************************************************************** varchar,nvarchar, varchar2,nvarchar2的区别 四个类型都属于变长字符类型: varchar和varchar2的区别在与后者把所有字符都占两字节,前者只对汉字和全角等字符占两字节。 nvarchar和nvarchar2的区别和上面一样, 与上面区别在于是根据Unicode 标准所进行的定义的类型,通常用于支持多国语言类似系统的定义。 ***************************************************************************************************************** char char的长度是固定的,比如说,你定义了char(20),即使你你插入abc,不足二十个字节,数据库也会在abc后面自动加上17个空格,以补足二十个字节; char是区分中英文的,中文在char中占两个字节,而英文占一个,所以char(20)你只能存20个字母或10个汉字。 char适用于长度比较固定的,一般不含中文的情况 ***************************************************************************************************************** varchar/varchar2 varchar是长度不固定的,比如说,你定义了varchar(20),当你插入abc,则在数据库中只占3个字节。 varchar同样区分中英文,这点同char。 varchar2基本上等同于varchar,它是oracle自己定义的一个非工业标准varchar,不同在于,varchar2用null代替varchar的空字符串 varchar/varchar2适用于长度不固定的,一般不含中文的情况 1.varchar2把所有字符都占两字节处理(一般情况下),varchar只对汉字和全角等字符占两字节,数字,英文字符等都是一个字节; 2.VARCHAR2把空串等同于null处理,而varchar仍按照空串处理; 3.VARCHAR2字符要用几个字节存储,要看数据库使用的字符集, 大部分情况下建议使用varchar2类型,可以保证更好的兼容性。 ***************************************************************************************************************** nvarchar/nvarchar2 nvarchar和nvarchar2是长度不固定的 nvarchar不区分中英文,比如说:你定义了nvarchar(20),你可以存入20个英文字母/汉字或中英文组合,这个20定义的是字符数而不是字节数 nvarchar2基本上等同于nvarchar,不同在于nvarchar2中存的英文字母也占两个字节 nvarchar/nvarchar2适用于存放中文

答案来源网络,供参考,希望对您有帮助

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值