`
yr512656630
  • 浏览: 316080 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

varchar2和nvarchar2和char最大长度

阅读更多
1.CHAR的长度是固定的,而VARCHAR2的长度是可以变化的, 比如,存储字符串“abc",对于CHAR (20)

,表示你存储的字符将占20个字节(包括17个空字符),而同样的VARCHAR2 (20)则只占用3个字节的长度

,20只是最大值,当你存储的字符小于20时,按实际长度存储。

2.CHAR的效率比VARCHAR2的效率稍高。

3.目前VARCHAR是VARCHAR2的同义词。工业标准的VARCHAR类型可以存储空字符串,但是oracle不这样做

,尽管它保留以后这样做的权利。Oracle自己开发了一个数据类型VARCHAR2,这个类型不是一个标准的

VARCHAR,它将在数据库中varchar列可以存储空字符串的特性改为存储NULL值。如果你想有向后兼容的

能力,Oracle建议使用VARCHAR2而不是VARCHAR。

何时该用CHAR,何时该用varchar2?
CHAR与VARCHAR2是一对矛盾的统一体,两者是互补的关系.
VARCHAR2比CHAR节省空间,在效率上比CHAR会稍微差一些,即要想获得效率,就必须牺牲一定的空间,

这也就是我们在数据库设计上常说的‘以空间换效率’。
VARCHAR2虽然比CHAR节省空间,但是如果一个VARCHAR2列经常被修改,而且每次被修改的数据的长度不

同,这会引起‘行迁移’(Row Migration)现象,而这造成多余的I/O,是数据库设计和调整中要尽力避

免的,在这种情况下用CHAR代替VARCHAR2会更好一些。

实验说明varchar2和char最大长度

1.实验说明varchar2最大长度:

SQL> create table test3 (v2 varchar2(4001));
create table test3 (v2 varchar2(4001))
                                *
ERROR at line 1:
ORA-00910: specified length too long for its datatype

可见4001个bite太大了

SQL> create table test3 (v2 varchar2(4000));
Table created.

可见varchar2的最大长度是4000bite。

2.实验说明char最大长度:

SQL> create table test2 (v2 char(2001));
create table test2 (c char(2001))
                            *
ERROR at line 1:
ORA-00910: specified length too long for its datatype

可见4001个bite太大了

SQL> create table test1 (c char(2000));
Table created.

可见char的最大长度是2000bite。

3.NVARCHAR2(size)

可变长度的字符串,依据所选的国家字符集,其最大长度为size个字符或字节;size的最大值取决于储存每个字符所需的字节数,其上限为2000;你必须指定一个NVARCHAR2的size;

1.nvarchar中字符为中文则一般按2个字节计算,英文数字等按照一个自己计算
2.nvarchar2中所有字符均按照2个字节计算;
3.nvarchar2虽然更占空间,但是它有更好的兼容性,所有推荐使用;
分享到:
评论
1 楼 dsjt 2014-08-19  
oracle(UTF-8) 某列类型是varchar2(4000);但是 超过2000就不行:数据大小超出此类型的最大值: 2356。

相关推荐

    VARCHAR与CHAR字符型数据的差异.docx

    char是固定长度的,而varchar会根据具体的长度来使用存储空间,另外varchar需要用额外的1-2个字节存储字符串长度。 1). 当字符串长度小于255时,用额外的1个字节来记录长度 2). 当字符串长度大于255时,用额外的2个...

    Mysql中varchar长度设置方法

    主要介绍了Mysql中varchar长度设置方法的相关资料,本文还给大家带来了valar类型的变化及char()和varchar()的区别介绍,非常不错,具有参考借鉴价值,需要的朋友可以参考下

    varChar和Char之间的区别?

    2.char的存取速度比varchar要快,应为长度固定,方便程序的存储和查找; 3.char的存储方式是,对英文字符(ASCII)占用1个字节,对一个汉字占用两个字节;而varchar的存储方式是,对每个英文字符占用2个字节,汉字也...

    MYSQL中 char 和 varchar的区别

    当要存储的字符超过CHAR/VARCHAR指定的最大长度。在sql mode 没开启的时候是截断要存储的字串,只存储前30位 CHAR列中的值是定长的字符串。长度可以指定为0到255个字符(例如utf8mb4: 0-255*4个字节)之间的值当使用...

    MySQL中字段类型char、varchar和text的区别

    在MySQL中,char、varchar和text类型的字段都可以用来存储字符类型的数据,char、varchar都可以指定最大的字符长度,但text不可以。 它们的存储方式和数据的检索方式也都不一样。 数据的检索效率是:char > varchar ...

    MySQL数据库char与varchar的区别分析及使用建议

    在MySQL数据库中,用的最多的字符型数据类型就是Varchar和Char.。这两种数据类型虽然都是用来存放字符型数据,但是无论从结构还是 从数据的保存方式来看,两者相差很大。而且其具体的实现方式,还依赖与存储引擎。我...

    MySQL中CHAR和VARCHAR类型演变和详解

    一、演变: MySQL数据库的varchar类型在5.0.3以下的版本中的最大长度限制为255,其数据范围可以是0~255。 在MySQL5.0.3及以上的版本中,varchar数据类型的长度支持到了65535,也就是说可以存放65532个字节的数据,...

    MySQL中VARCHAR与CHAR格式数据的区别

    char是一种固定长度的类型,varchar则是一种可变长度的类型,那么他们具体使用过程中有什么区别吗

    mysql中char与varchar的区别分析

    char与varchar的区别 char (13)长度固定, 如’www.jb51.net’ 存储需要空间 12个字符 varchar(13) 可变长 如’www.jb51.net’ 需要存储空间 13字符, 从上面可以看得出来char 长度是固定的,不管你存储的数据是多少...

    基于SQL Server中char,nchar,varchar,nvarchar的使用区别

    对于程序中的一般字符串类型的字段,SQL Server中有char、varchar、nchar、nvarchar四种类型来对应,那么这四种类型有什么区别呢,这里做一下对比。 1.定长或变长 所谓定长就是长度固定,当要保存的数据长度不够时将...

    char和vchar2区别

    char和vchar2的区别CHAR的长度是固定的,而VARCHAR2的长度是可以变化的, 比如,存储字符串“abc",对于CHAR (20),表示你存储的字符将占20个字节(包括17个空字符),而同样的VARCHAR2 (20)则只占用3个字节的长度,20...

    Sqlserver中char,nchar,varchar与Nvarchar的区别分析

    1. char类型: 对英文(ASCII)字符占用1个字节,对一个汉字占用2个字节,CHAR存储定长数据很方便,CHAR字段上的索引效率极高,比如定义char(10),那么不论你存储的数据是否达 到了10个字节,都要占去10个字节的空间...

    ORACLE中的数据类型.doc

    CHAR() CHAR数据类型是一种有固定长度和最大长度的字符串。存储在数据类型为CHAR字段中的数据将以空格的形式补到最大长度。长度定义在1——2000字节之间。 当你创建一个CHAR型字段,数据库将保证在这个字段中的...

    Mysql varchar大小长度问题介绍

    1、限制规则 字段的限制在字段定义的时候有以下规则: a) 存储限制 varchar 字段是将实际内容单独存储在聚簇索引之外,内容开头用1到2个字节表示实际长度(长度超过255时需要2个字节),因此最大长度不能超过65535...

    SQL Server数据类型char、nchar、varchar、nvarchar的区别浅析

    在SQL Server中,当我们设置字符型字段的时候,往往有很多个数据类型供我们选择,如:char nchar varchar nvarchar等,那么我们到底应该选择哪一个呢?下面就一一来描述其区别。 char:固定长度,非Unicode字符数据...

    PB商品进销存管理系统

    GYSMC Varchar2 N 100 供应商名称 LXR Varchar2 Y 20 联系人 DHHM Varchar2 Y 100 电话号码 CZHM Varchar2 Y 100 传真号码 ADDRESS Varchar2 Y 200 地址 EMAIL Varcahr2 Y 40 电子邮件 ...

    MySQL数据库varchar的限制规则说明

    varchar字段是将实际内容单独存储在聚簇索引之外,内容开头用1到2个字节表示实际长度(长度超过255时需要2个字节),因此最大长度不能超过65535。 b)编码长度限制 字符类型若为gbk,每个字符最多占2个字节,最大长度...

Global site tag (gtag.js) - Google Analytics