- 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适用于存放中文。