char,varchar,varchar2都是用来存储非Unicode字符串的
其中char存储字符串长度是固定的,char(n)表示该字段存储的字符串字节为n,n的值介于1到8000,将abcd保存到char(20)中abcd占用4个字节,另外16个字节为空字符串;
varchar存储字符串长度是变化的,varchar(n),其中n介于1到8000,存储大小为输入字符串的长度,输入字符串长度不能超过n,而不是固定为n
varchar2也是用来存储字符串的,它和varchar的区别在于,varchar2将varchar存储空字符串的能力调整为存储null值,如果经常修改varchar2列值,会引起“行迁移”的现象,会造成多余的I/O,这是在数据库设计和调整时应该尽量避免的,在这种情况下,建议使用char代替varchar,尽管后者相对char来说,要节省不少空间
nchar,nvarchar是用来存储Unicode字符串的;
定义和上面的没什么区别,nchar和nvarchar存储字符串长度n介于1到4000之间
用Unicode编码的字符串,结果是字符的整数