首先varchar2是oracle自己开发的数据类型,MySQL中并没有这种类型
char与varchar的区别
- char的长度是固定的,varchar的长度是可变的。例如,存储字符串“abc”,使用char(20),存储的字符将占20个字节(包括17个空字符),如果使用varchar(20),存储的字符只占3个字节。注意字符大小与字符集有关(一个字节包含8个二进制位(1Byte=8bit)。 ASCII码:一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。 UTF-8编码:一个英文字符等于一个字节,一个中文(含繁体)等于二~四个字节。 Unicode编码:一个英文等于两个字节,一个中文(含繁体)等于两个字节。)
varchar与varchar2的区别
- varchar2把所有字符都占两字节处理(一般情况下),varchar只对汉字和全角等字符占两字节,数字,英文字符等都是一个字节;
- varchar2把空串等同于null处理,而varchar仍按照空串处理;
- varchar2字符要用几个字节存储,要看数据库使用的字符集;