重要概念

Unicode:所有字符用两个字节表示,即英文和非英文字符,都是占用两个字节的长度。(下列类型中前缀带n的表示Unicode类型)
非Unicode字符:英文字符占用一个字节,非英文字符占用两个字节
定长:长度是固定的,当输入的字符未达到最大长度时,会用英文空格在其后面填充
变长:与定长相反,未到最大长度时,不会以空格自动填充
记忆
1.类型带n的,一个汉字和一个字母都是占用1个长度(两个字节)
2.类型不带n的,一个汉字占用2个长度,一个字母占用1个长度

区别

char nchar varchar nvarchar
大小是否可变 不支持 支持 不支持 支持
是否为Unicode字符集 不是 不是
定长/变长 定长 定长 变长 变长
特点 索引效率高
最大长度(字节长度) 8000 4000 8000 4000

参考

【SQL Server】varchar和nvarchar的基本介绍及其区别 nchar 和 nvarchar (Transact-SQL)