CHAR,VARCHAR,VARCHAR2类型的区别与使用

原创 2007年09月28日 10:36:00
CHAR,VARCHAR,VARCHAR2类型的区别与使用

区别:
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会更好一些。
 

ORACLE CHAR,VARCHAR,VARCHAR2,NVARCHAR类型的区别与使用

区别:   1.CHAR的长度是固定的,而VARCHAR2的长度是可以变化的, 比如,存储字符串“abc",对于CHAR (20),表示你存储的字符将占20个字节(包括17个空字符),而同样的VARC...
  • xiaomin1991222
  • xiaomin1991222
  • 2016-03-10 16:05:00
  • 2714

oracle mysql中的char,varchar,varchar2的区别

MySQL中 char是定长的,varchar是变长的。varchar2应该是varchar的升级,似乎只有ORACLE才有,这里不作讨论。 char定长存储,速度快,但是存在一定的空间浪费,适用...
  • leifuchild
  • leifuchild
  • 2013-12-13 19:17:38
  • 2585

CHAR,VARCHAR,VARCHAR2,nvarchar,nvarchar2的用法和区别

CHAR: 1.长度固定,当char(15)的元素中只有“abc”时,其余十二位用空格填补; VARCAHR: 1.长度不固定,该列中元素有多少位,就是多少位; 2.当数据为空时,该字段为空字符串; ...
  • yxd_19901227
  • yxd_19901227
  • 2014-02-22 11:27:01
  • 2940

char和varchar2、varchar的区别

char和varchar2、varchar的区别 1、char是长度固定的类型,varchar2是动态变化的,譬如:存在字符串"abcde",对于一个大小为char(20)而言,它将存储20个字符,...
  • anlidengshiwei
  • anlidengshiwei
  • 2014-12-11 17:09:39
  • 1517

oracle中的char、varchar、varchar2、nvarchar、nvarchar2区别

oracle中的char、varchar、varchar2、nvarchar、nvarchar2区别
  • master_yao
  • master_yao
  • 2016-03-29 22:31:18
  • 4946

MySQL漂流记之常用(三)--varchar(20)和varchar2(20)的区别

最近看到这个有趣的问题: varchar(20)和varchar2(20),哇靠,考研眼力的时候到啦,这简直就是差不多嘛~ 其实,这可差多了···· 在MySQL中,我们用varchar(20)...
  • tom_code
  • tom_code
  • 2017-04-01 14:43:35
  • 2368

oracle char,varchar,varchar2的区别和使用方法

  • 2012年02月11日 18:27
  • 7KB
  • 下载

char,varchar,varchar2,nchar……区别

导读   最近在学习Oracle数据库时,新接触了varchar2类型,想想之前接触过varchar类型,那么varchar2又是什么东东呢?所以就有了下面的内容。   题目中的数据类型之间...
  • u010924834
  • u010924834
  • 2015-09-22 19:01:32
  • 736

浅谈Oracle 中 varchar2(N) 与 varchar2(N char) 的区别

在oracle数据库表结构中,我们往往会看到varchar2的两种使用方式,如,varchar2(16)、varchar2(16 char),那么这两者有什么区别呢?现在我们实际的例子看一下: 1、...
  • YangLiehui
  • YangLiehui
  • 2015-10-29 09:15:54
  • 3365

Oracle中Varchar2/Blob/Clob用法详解

Oracle中Varchar2/Blob/Clob用法详解 数据库中提供了三种字段类型Varchar2、Blob和Clob用于存储字符串或二进制数据,其中Varchar2、Clob用于存储字...
  • u014232091
  • u014232091
  • 2014-04-21 22:21:49
  • 2211
收藏助手
不良信息举报
您举报文章:CHAR,VARCHAR,VARCHAR2类型的区别与使用
举报原因:
原因补充:

(最多只允许输入30个字)