varchar和nvarchar有什么区别?

38 浏览
0 Comments

varchar和nvarchar有什么区别?

仅仅是因为 nvarchar 支持多字节字符吗?如果是这样的话,使用 varchar 除了存储考虑之外,真的有任何意义吗?

admin 更改状态以发布 2023年5月20日
0
0 Comments

varchar:可变长度的非Unicode字符数据。数据库协调规定了数据存储使用的代码页。

nvarchar:可变长度的Unicode字符数据。依赖于数据库协调规则进行比较。

掌握了这些知识后,使用符合您输入数据(ASCII或Unicode)的任何一种类型。

0
0 Comments

一个 nvarchar 列可以存储任何 Unicode 数据。而 varchar 列则仅限于 8 位代码页。有些人认为应该使用 varchar,因为它占用的空间更小。然而,我认为这不是正确的答案。代码页不兼容是个让人头疼的问题,而 Unicode 是解决代码页问题的方法。现今,由于磁盘和内存价格便宜,真的没有必要再去浪费时间处理代码页问题了。\n\n所有现代操作系统和开发平台都在内部使用 Unicode。使用 nvarchar 而不是 varchar,可以避免每次从数据库读取或写入时进行编码转换。转换需要时间,并且容易出错。而解决转换错误是个不容易的问题。\n\n如果您正在与只使用 ASCII 的应用程序进行接口,则仍建议在数据库中使用 Unicode。操作系统和数据库排序算法将更好地与 Unicode 协同工作。使用 Unicode 避免了与其他系统交互时的转换问题,并且你将为未来做好准备。而且,尽管可以享受完全 Unicode 存储的好处,但您仍然可以验证您的数据是否仅限于 7 位 ASCII,适用于您正在维护的任何遗留系统。

0