SQL中varchar和nvarchar有什么区别?

说起varchar和nvarchar的区别,主要应该从其编码方式谈起:即unicode编码,一个unicode是2个字节。因此他们的区别如下:

varchar(n)
长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。

nvarchar(n)
包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。

举例来说:Tom的故事
varchar字段占3+3×2=9个字节的存储空间,而nvarchar字段占6×2=12个字节的存储空间。

如字段值只是英文可选择varchar,而字段值存在较多的双字节(中文、韩文等)字符时用nvarchar。
上面是一个总结介绍,通过上面的介绍,可以知道:
varchar(4) 可以输入4个字母,也可以输入两个汉字
nvarchar(4) 可以输四个汉字,也可以输4个字母,但最多四个

另外 还有一个比较类似的问题, 就是nchar了, nchar(10), 可以放10汉字也可以放10个字母,但是长度都不能大于10, 输入的字符长度小于10时,其余的位置就会补充空格,填充满10为止。

宝乐贝:http://baolebei.taobao.com

原文地址:https://www.cnblogs.com/baolebei/p/2749245.html