Sql Server中的nvarchar(n)和varchar(n)

  刚才有幸看了下 nvarchar(n)和varchar(n),感觉以前的认知有误。

  nvarchar(n):n指的是字符个数,范围是1-4000,存储的是可变长度的Unicode字符数据。

        按字符存储,1个中文或者英文字符都占2个字节。

  varchar(n):n指的是字节个数,范围是1-8000,存储的是可变长度的非Unicode字符数据。

        按字节存储,1个中文或者英文字符都占1个字节。

  实验例子:创建一个People2表,有字段UName,数据类型为varchar(2);字段Age,数据类型为nvarchar(2)。

   Sql Server中的nvarchar(n)和varchar(n)

  1.测试varchar(2)

  (1).Uname列里插入1个汉字或1个英文

  结果:全部成功

  Sql Server中的nvarchar(n)和varchar(n)

  (2).Uname列里插入2个汉字或2个英文

  结果:2个英文的成功,2个汉字的失败

  Sql Server中的nvarchar(n)和varchar(n)

  

  (2).Uname列里插入1个汉字和1个英文

  结果:失败

  Sql Server中的nvarchar(n)和varchar(n)

总结:在varchar(2)中,2表示最大可以存两个字节,即能存1个汉字符号,或者2个英文符号。1个汉字符号占2个字节,1个英文符号占1个字节。

  

  2.测试nvarchar(2)

    (1).Age列里插入1个汉字或1个英文

  结果:都成功

  Sql Server中的nvarchar(n)和varchar(n)

  (2).Age列里插入2个汉字或2个英文

  结果:都成功

  Sql Server中的nvarchar(n)和varchar(n)

  (3).Age列里插入1个汉字和1个英文

  结果:成功

  Sql Server中的nvarchar(n)和varchar(n)

   (4).Age列里插入1个汉字和2个英文

  结果:失败

总结:在nvarchar(2)中,2表示最大可以存两个字符,即能存2个汉字符号,或者2个英文符号。1个汉字符号占2个字节,1个英文符号占2个字节。

  

上一篇:php 魔术方法


下一篇:Java I/O流详解与应用