nvarchar 和varchar区别

今晚在设计数据库字段的时候,碰到nvarchar和varchar类型的选择,是有点犹豫。所以今天就来探个究竟。
(一) varchar是非Unicode可变长度类型,nvarchar是Unicode编码可变长度类型
DECLARE @name AS VARCHAR(50)=‘我是中国人test’
SELECT @name AS Name,
DATALENGTH(@name) AS [Length]—长度length为14

DECLARE @nname AS NVARCHAR(50)=‘我是中国人test’
SELECT @nname AS Name,
DATALENGTH(@nname) AS [Length]—长度length为18
(二)它们两者的最大长度不一样
nvarchar的最大值是4000
varchar最大值是8000
(三) varchar能存储的字节数就是它的长度,nvarchar能存储的字节数是它的长度乘2
(四) 实际开发中,如何选择,到底是用哪个好呢?
总的来说,我是比较推崇使用nvarchar

     有人说,varchar比nvarchar更省空间,应该更多的用varchar。但是我不是很赞同这个观点,首先,现在空间相对来说已经不是那么缺少了,没有必要太纠结于空间这个了,还有一点就是现在的操作系统基本上内部解析基本上都是用Unicode编码的,使用了nvarchar你可以避免每次从数据库读取或写入时候,进行编码转换,转换需要时间,并且很容易出错。如果出错,恢复回来可没那么简单,并且nvarchar是支持多种语言的。所以我大部分时间做数据库设计的时候都是用nvarchar的。

猜你喜欢

转载自blog.csdn.net/csdn15556927540/article/details/83627858