Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它全部的字符都用两个字节表示,即英文字符也是用两个字节表示html
若是还为了这个纠结,就直接看看后面的解说,作决定吧。sql
通常若是用到中文或者其它特殊字符,我就会使用n开头的类型,不然的话直接使用var开头的。 spa
sql server中的varchar和Nvarchar有什么区别?code
varchar(10)与nvarchar(10)server
前者是非unicode型,存储字符按1个算(内部空间存储占1字节),存储汉字的话按2个算,
就是能够存10个字符或者5个汉字
后者是unicode型,存储什么都是按1个算(内部空间存储占2字节),
就是能够存10个字符或10个汉字
varchar(10)与nvarchar(10)就是分别占10个字节和20个字节htm
———————————————————————————————————————————————————blog
char(n) | 定长 | 索引效率高 程序里面使用trim去除多余的空白 | n 必须是一个介于 1 和 8,000 之间的数值,存储大小为 n 个字节 |
varchar(n) | 变长 | 效率没char高 灵活 | n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节 |
text(n) | 变长 | 非Unicode数据 | |
nchar(n) | 定长 | 处理unicode数据类型(全部的字符使用两个字节表示) | n 的值必须介于 1 与 4,000 之间。存储大小为 n 字节的两倍 |
nvarchar(n) | 变长 | 处理unicode数据类型(全部的字符使用两个字节表示) | n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。所输入的数据字符长度能够为零 |
ntext(n) | 变长 | 处理unicode数据类型(全部的字符使用两个字节表示) |