Heim  >  Artikel  >  Datenbank  >  SQLServer2005 NVARCHAR 和VARCHAR区别和使用

SQLServer2005 NVARCHAR 和VARCHAR区别和使用

WBOY
WBOYOriginal
2016-06-07 15:44:30987Durchsuche

1、各自的定义: ? nvarchar(n) : 包含 n 个字符的可变长度 Unicode 字符数据。n 的必须介于 1 与 4,000 之间。 字节的存储大小是所输入字符个数的两倍。所输入的数据字符长度可以为零。 ? varchar[(n)]: 长度为 n 个字节的可变长度且非 Unicode 的字符数

1、各自的定义:        

 ? nvarchar(n) : 包含   n   个字符的可变长度   Unicode   字符数据。n   的值必须介于   1   与   4,000   之间。

字节的存储大小是所输入字符个数的两倍。所输入的数据字符长度可以为零。         

? varchar[(n)]:   长度为   n   个字节的可变长度且非   Unicode   的字符数据。n   必须是一个介于   1   和   8,000   之间的数值。

存储大小为输入数据的字节的实际长度,而不是   n   个字节。所输入的数据字符长度可以为零。

  varchar(max)最大2gb字符 使用C#中的DbType.varchar   针对max      DbType.varchar,-1    

2、区别:        

? 从存储方式上,nvarchar是按字符存储的,而 varchar是按字节存储的;      

  ? 从存储量上考虑, varchar比较节省空间,因为存储大小为字节的实际长度,而 nvarchar是双字节存储;        

? 在使用上,如果存储内容都是英文字符而没有汉字等其他语言符号,建议使用varchar;含有汉字的使用nvarchar,

因为nvarchar是使用Unicode编码,即统一的字符编码标准,会减少乱码的出现几率;       

 ?如果你做的项目可能涉及不同语言之间的转换,建议用nvarchar。  这点要注意:varchar   适合与存储英文和数字;   

nvarchr一般用于存储中文或其他语言的输入,因为   这样,可以防止到其他语言平台上出现乱码的问题。  

举个例子:  create table a (name1 varchar(8)) insert a select '张红a' --- 存储长度为5个字节

 insert a select '王一南' ----存储长度为6个字节  

---意思是varchar变长字符数据类型与存储数据的实际长度是一致的 

   nvarchar(n):可变长度 Unicode 数据,其最大长度为 4,000 字符。 字节的存储大小是所输入字符个数的两倍,

 就是说它是双字节来存储数据的。 如果存储数据如果存在单字节时,它也是以双字节来占用存储空间的。

 举个例子: create table aa (name1 nvarchar(8)) insert aa select '张红a' --- 存储长度为6个字节


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:SqlServer查看锁Nächster Artikel:oracle 11g 下载地址