博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle中varchar,varchar2,nvarchar,nvarchar2的区别
阅读量:4305 次
发布时间:2019-05-27

本文共 1045 字,大约阅读时间需要 3 分钟。

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,汉字就会占两个字节,英文1个

  如果是UTF-8,汉字一般占3个字节,英文还是1个。

但是一般情况下,我们都认为是两个字节处理,因为oracle安装时候默认我们都选择GBK的编码格式,但是我们在页面做输入字符串长度的校验的时候,还是以数据库设计字段最大长度除3来作为最大长度-----防止数据库移植时设置不同编码格式;

  比如:VARCHAR2(10),一般情况下最多存放5个汉字,10个字符

--nvarchar,nvarchar2

联系:

1.nvarchar/nvarchar2用于存储可变长度的字符串

2.size 的最大值是 4000,而最小值是 1,其值表示字符的个数,而不是字节数

3.这两种类型更适合存储中文

区别:

1.nvarchar中字符为中文则一般按2个字节计算,英文数字等按照一个自己计算

2.nvarchar2中所有字符均按照2个字节计算;

3.nvarchar2虽然更占空间,但是它有更好的兼容性,所有推荐使用;

 

 

【注意】

VARCHAR2是Oracle提供的特定数据类型,Oracle可以保证VARCHAR2在任何版本中该数据类型都可以向上和向下兼容。

VARCHAR在Oracle中不建议使用。

 

具体到NVARCHAR2和VARCHAR2的区别,从使用角度来看区别在于:NVARCHAR2在计算长度时和字符集相关的,例如数据库是中文字符集时以长度10为例,则

 

1、NVARCHAR2(10)是可以存进去10个汉字的,如果用来存英文也只能存10个字符。

 

2、而VARCHAR2(10)的话,则只能存进5个汉字,英文则可以存10个。 

转载地址:http://bgews.baihongyu.com/

你可能感兴趣的文章
linux的基础知识
查看>>
接口技术原理
查看>>
五大串口的基本原理
查看>>
PCB设计技巧与注意事项
查看>>
linux进程之间通讯常用信号
查看>>
main函数带参数
查看>>
PCB布线技巧
查看>>
关于PCB设计中过孔能否打在焊盘上的两种观点
查看>>
PCB反推理念
查看>>
京东技术架构(一)构建亿级前端读服务
查看>>
git 提示:error: unable to rewind rpc post data - try increasing http.postBuffer
查看>>
php 解决json_encode中文UNICODE转码问题
查看>>
LNMP 安装 thinkcmf提示404not found
查看>>
PHP empty、isset、innull的区别
查看>>
apache+nginx 实现动静分离
查看>>
通过Navicat远程连接MySQL配置
查看>>
phpstorm开发工具的设置用法
查看>>
Linux 系统挂载数据盘
查看>>
Git基础(三)--常见错误及解决方案
查看>>
Git(四) - 分支管理
查看>>