ORACLE之varchar ,varchar2,nvarchar,nvarchar2 联系与区别

varchar ,varchar2
联系:
1、varchar/varchar2用于存储可变长度的字符串,比如varchar(20),存入字符串‘abc’,则数据库中该字段只占3个字节,而不是20个字节。
2、size的最大值是4000,而最小值是1,其值表示字节数,比如varchar(20)表示可以存放20个字节的内容。
区别:
1、varchar2把所有字符都占两个字符处理(一般情况下),varchar只对汉字和全角等字符占两字节,数字英文等字符都是一个字节;
2、varchar2把空字符串等同于null处理,而varchar仍按照空字符串处理;
3、varchar2字符要用几个字节存储,要看数据库使用的字符集,比如GBK,汉字就会占两个字节,英文一个,如果是UTF-8,汉字一般占3个字节,英文还是一个人。但是一般情况下,我们都认为是两个字节处理,因为oracle安装时候默认我们都选择GBK的编码格式。


nvarchar,nvarchar2
联系:
1、nvarchar/nvarchar2用于存储可变长度的字符串;
2、size的最大值是4000,而最小值是1,其值表示字符的个数,而不是字节数;
3、这两种类型更适合存储中文。
区别:
1、nvarchar中字符为中文则一般按两个字节计算,英文数字等按照一个字节计算;2、nvarchar2中所有字符均按照2个字节计算;
3、nvarchar2虽然更占用空间,但是它有更好的兼容性,所以推荐使用。

猜你喜欢

转载自blog.csdn.net/u010622242/article/details/81061105