在SQL server中,怎么区别char跟varchar?

char和 varchar是一样的字符型,
不同在于,varchar比char更灵活,精确,且不占内存空间,
当你取同样的字符时,char会在该字符后面加上空格,
而varchar则只取得这个字符,比如有字段5,用varchar从该字段
中取aa时,你取得的是"aa",如果用char,则取得的是"aa   ",
char会在后面用空格补齐5个字段。
所以,varchar比char更精确,但,varchar的速度却比char慢。
因为char是直接取得全部,而varchar是精确的去取得你要的字符。

追问

那nvarchar呢?

回答

varchar是处理非unicode数据,它处理的数据字节的长度是字符实际的长度.
nvarchar处理unicode数据,它处理的数据字节的长度是字符个数的两倍.
就是说,汉字一个字占两个字符,英文字母一个占一个字符,用varchar的话它是按这样计算的,
但是你用nvarchar的话它是把汉字和字母都当作两个字符,来得到字符长度.这里,char和
varchar是一样的.
所以,nvarchar能处理的英文字符数比varchar少了一半.
另外,
CHAR,NCHAR 有固的定长,查询速度快,但占用空间大,
VARCHAR,NVARCHAR,TEXT 没有固定定长,占用空间小,查询速度慢;
你看到的前面加个N其实就是说明它是要处理unicode数据的.

原文地址:https://www.cnblogs.com/yaoxing92/p/2917765.html