char与varchar都是非Unicode字符数据
Unicode是什么?
它是为了各种语言而设定的统一的编码方式。通常用两个字节表示一个字符,原有的英文编码从单字节变成双字节。
二者不论是存储英文还是中文都是占用两个字节
char是定长的,当你输入的字符小于你指定的数目时,电脑会自动补齐后面为空值。而varnhar是可变n度的。
nchar、nvarchar。这两种从名字上看比前面三种多了个“N”。它表示存储的是Unicode数据类型的字符。那么就是说英文占一个字节,汉字占用两个字节。
char的存取数度还是要比varchar要快得多,因为其长度固定,方便程序的存储与查找;但是char也为此付出的是空间的代价,因为其长度固定,所以难免会有多余的空格占位符占据空间,可谓是以空间换取时间效率,而varchar是以空间效率为首位的。