1、varchar: 可变长度的非 Unicode 字符数据,最长为 8,000 个字符。
2、nvarchar: 可变长度的 Unicode 字符数据,其最大长度为 4,000 字符。
3、char: 固定长度的非 Unicode 字符数据,最大长度为 8,000 个字符。
4、nchar: 固定长度的 Unicode 字符数据,最大长度为 4,000 个字符。
5、varchar2: oracle独有的字符数据类型;目前VARCHAR是VARCHAR2的同义词。工业标准的VARCHAR类型可以存储空字符串,但是oracle不这样做,尽管它保留以后这样做的权利。Oracle自己开发了一个数据类型VARCHAR2,这个类型不是一个标准的VARCHAR,它将在数据库中varchar列可以存储空字符串的特性改为存储NULL值。如果你想有向后兼容的能力,Oracle建议使用VARCHAR2而不是VARCHAR。
对比:
1、固定长度的char和nchar的速度比可变长度的varchar和nvarchar要快
2、可变长度的varchar和nvarchar比固定长度的char和nchar的空间占用小
3、如果数据量很大,又能100%确定长度且保存只是ansi字符时,使用char
4、如果能确定长度又不一定是ansi字符时,使用nchar
5、如果不能确定长度,需要查询并且使用索引时,使用nvarchar,长度设置不要超过400,否则索引失效
6、如果不确定长度,又不一定是ansi字符时,又不需要利用索引查询时,使用nvrchar(4000)