重要概念
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)