Varchar是“可变字符字段(Variable Character Field)”的缩写。字符代表长度不确定的数据。实际上,Varchar是数据库管理系统的数据列类型。 Varchar列的字段大小可以变化,具体取决于所使用的数据库系统。

在Oracle 9i中,字段的最大限制为4000个字符。 MySQL的连续数据限制为65,535,而Microsoft SQL Server 2005的字段限制为8000。使用Varchar(max)时,此数字在Microsoft SQL服务器中可能会更高,上升到2 GB。另一方面,Nvarchar是可以存储任何长度的Unicode数据的列。 Nvarchar必须遵守的代码页是8位编码。 Varchar的最大大小为8000,而NVarchar的最大大小为4000。这实际上意味着Varchar的单个列最多可以包含8000个字符,而Nvarchar的单个列最多可以包含4000个字符。超出列值将成为一个巨大的问题,并且可能会导致严重的问题,因为行不能跨越多个页面(SQL Server 2005除外),并且必须遵守该限制,否则将导致错误或截断。

Varchar和Nvarchar之间的主要区别之一是Varchar中使用较少的空间。这是因为Nvarchar使用Unicode,由于编码细节的麻烦,Unicode占用了更多空间。对于存储的每个字符,Unicode都需要两个字节的数据,与Varchar使用的非Unicode数据相比,这可能会导致数据值看起来更高。另一方面,Varchar对于每个存储的字符只需要一个字节的数据。但是,更重要的是,尽管Unicode的使用占用了更多空间,但它确实解决了代码页不兼容引起的问题,这些问题很难手动解决。

因此,可以优先考虑忽略Unicode修复出现的不兼容性所需的时间较短的空间功能。同样,磁盘和内存的成本也变得相当可承受,从而确保了经常忽略空间功能的问题,而解决Varchar出现的问题所花费的时间却不那么容易。

所有开发平台都在内部使用现代操作系统,从而可以运行Unicode。这意味着Nvarchar的使用率比Varchar更高。避免了编码转换,从而减少了读取和写入数据库所需的时间。这也大大减少了错误,恢复确实发生的转换错误成为一个简单的问题。

使用Unicode的好处也适用于使用ASCII应用程序接口的人员,因为数据库响应良好,尤其是操作系统和数据库联合算法。 Unicode数据避免了与转换相关的问题,并且如果将数据限制为7位ASCII,则始终可以对其进行验证,而不必考虑必须维护的旧系统。

总结

  1. Varchar和Nvarchar具有不同的字符类型。 Varchar使用非Unicode数据,而Nvarchar使用Unicode数据。
  2. Varchar和Nvarchar都有必须遵守的不同数据类型。 Varchar仅以1个字节的顺序保存数据,Nvarchar每个字符以2个字节保存数据
  3. 最大长度也有所不同。 Varchar的长度限制为8000个字节,而Nvarchar的限制为4000个字节。
  4. 与Nvarchar使用的Unicode数据相比,Varchar中的存储大小更加简单。
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。
转载请注明:文章转载自 有区别网 [http://www.vsdiffer.com]
本文标题:Varchar和Nvarchar
本文链接:https://www.vsdiffer.com/vs/varchar-vs-nvarchar.html
免责声明:以上内容仅是站长个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。