char类型:对英文字符占一个字节,对一个汉字占2个字节,char的长度是固定的,char类型在DB中存储效率较高,比如是char(10),如果你存储的值是“abc”,实际在DB中是以"abc*******",后面有会补满7个半角空格(一个*代表一个空格)
varchar类型:varchar的长度是固定的,比如varchar(10),如果你存储的值是“abc”,实际DB中就是以"abc"存储的。varchar的实际长度比它的值长度多1,多的这个字节用来保存实际使用的长度值。
char虽然快,但是有一点需要我们在编程当中注意的,那就是取出来的值要trim多余的空格。
nchar,nvarchar中的n表示Unicode字符,即所有字符都占有两个字节,包括英文字符。
所以基于上面这点,我们来看下面的字段容量
char,varchar : 最多8000个英文,4000个汉字
nchar,nvarchar : 可存储4000个字符,不论是英文还是汉字