日期:2014-05-16  浏览次数:20474 次

Oracle——char,varchar,varchar2,nvarchar类型的区别
  • 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适用于长度不固定的,一般不含中文的情况。

?

  • nvarchar/nvarchar2

nvarchar和nvarchar2是长度不固定的。

?

nvarchar不区分中英文,比如说,你定义了nvarchar(20),你可以存入20个英文字母,汉字或中英文组合,这个20定义的是字符数而不是字节数。

?

nvarchar2基本上等同于nvarchar,不同在于nvarchar2中存的英文字母也占两个字节。

?

nvarchar/nvarchar2适用于存放中文。