1、char
char类型是固定长度的,一般用来存储固定长度的数据;例如char(10):能表示的数据长度为10个字节(即10个英文,5个汉字)如果数据的字节长度不足10个,则不足的部分用空格来表示。
2、varchar
varchar类型是变长度的,但是存储的效率没有char高。如果字段存储的数据长度是变化的,则可以考虑使用varchar类型。
3、nchar与nvarchar
前边介绍了char与varchar,而nchar与nvarchar是前边两种类型的变化,区别在于编码的方式不同,nchar与nvarchar采用Unicode的编码方式,因此不论是一个英文字符还是中文字符都需要占用2个字节,采用Unicode的编码方式能够很好的解决不同字符集冲突的问题;例如数据中同时含有英文和中文,就很有可能出现乱码的问题。
char,varchar 最多8000个英文,4000个汉字;
nchar,nvarchar 最多可存储4000个字符,无论英文还是汉字;
4、使用建议
如果数据中只含有英文或数字,建议使用char或者varchar;如果数据中含有中文则建议使用nchar或nvarchar。
如果想了解Unicode编码更多的信息可以参考博文:字符编码笔记:ASCII,Unicode 和 UTF-8