SQLServer中char/varchar/nchar/nvarchar的区别

原创 2012年03月28日 21:02:58
SQL Server中char/varchar/nchar/nvarchar的区别

    当我们建立数据库表时,都会根据字段特点选择适当的数据类型,这次主要讲的是关于字符类型,在我们平时的数据库结构当中,字符类型占绝大多数,如何高效准备地利用数据库和优化数据库结构是每个DBA必须掌握的技能。

在SQL Server中,现在主要以SQL Server2005为例。对于字符类型的有:

char:固定长度,存储ANSI字符,不足的补英文半角空格。

nchar:固定长度,存储Unicode字符,不足的补英文半角空格

varchar:可变长度,存储ANSI字符,根据数据长度自动变化。

nvarchar:可变长度,存储Unicode字符,根据数据长度自动变化。

如果你肯定存储的数据长度,而且不包中文的,可以选择char类型。

如果肯定存储的数据长度,但可能包括中文,可以选择nchar类型。

如果不确定存储的数据长度,也有可能有中文,可以选择nvarchar类型,在SQL Server2005中也是比较常用的字符数据类型。

ANSI主要是以单字节来存储数据,一般适合英文。而我们常用的汉字需要用两个字节来存储,所以就要使用unicode的数据类型,不然读取出来的数据可能会乱码。

一个字符数据类型最大8000,如果使用了Unicode来存储就变成只能存储4000个字符。

如果存储的是文章内容等超长文本数据的,可以使用nText类型,也是可变长度的。总是前面凡带n开头的表示以unicode来存储数据,以var前缀的表示可变长。

如果高效利用,就看自己的具体需要,有时为了以后数据结构的变动,常使用nvarchar的比较多。

SQL数据类型nchar,char,varchar与nvarchar区别

nchar与char是相似的,nvarchar与varchar是相似的。char类型: 对英文(ASCII)字符占用1个字节,对一个汉字占用2个字节,CHAR存储定长数据很方便,CHAR字段上的索引效...
  • chenxinchongcn
  • chenxinchongcn
  • 2017年04月24日 13:21
  • 312

SQL中 NVARCHAR 和 VARCHAR 两者之间的优势与劣势

转自:http://blog.csdn.net/yenange/article/details/6240029 varchar在SQL Server中是采用单字节来存储数据的,nvarchar是使用...
  • Tomsheng321
  • Tomsheng321
  • 2015年08月19日 22:44
  • 582

sqlserver数据库数据类型中varchar和nvarchar的区别

nvarchar   和   varchar   的区别是存储方式不同  varchar是按字节存储的。而带nvarchar是按字符存储的  比如说varchar(40),能存储40个字节长度的字符,...
  • konkong5501
  • konkong5501
  • 2013年10月16日 21:18
  • 1247

转】char、varchar、nchar、nvarchar的区别

对于程序中的string型字段,SQLServer中有char、varchar、nchar、nvarchar四种类型来对应(暂时不考虑text和ntext),开建立数据库中,对这四种类型往往比较模糊,...
  • cruelchen
  • cruelchen
  • 2013年07月12日 10:45
  • 377

char、varchar、nchar、nvarchar的区别【转】

对于程序中的string型字段,SQLServer中有char、varchar、nchar、nvarchar四种类型来对应(暂时不考虑text和ntext),开建立数据库中,对这四种类型往往比较模糊,...
  • lulin27860
  • lulin27860
  • 2014年03月25日 17:30
  • 876

详解char和varchar的区别

MySQL中的字符串有两个常用的类型:char和varchar,二者各有优势,下面我们来详细分析一下。 1、char(n)类型     char类型时定长的类型,即当定义的是char(10...
  • puqutogether
  • puqutogether
  • 2015年05月11日 21:05
  • 1943

【转】char、varchar、nchar、nvarchar的区别

对于程序中的string型字段,SQLServer中有char、varchar、nchar、nvarchar四种类型来对应(暂时不考虑text和ntext),开建立数据库中,对这四种类型往往比较模糊,...
  • cruelchen
  • cruelchen
  • 2013年07月12日 10:45
  • 322

数据库中varchar和Nvarchar区别与联系

在数据库中新建表的时候发现了字段类型有的带n有的不带n,那么两者之间有什么区别?         于是上网查找一些资料如下: 一、 1、CHAR。CHAR存储定长数据很方便,CHAR字段上的索引效率级...
  • xunzaosiyecao
  • xunzaosiyecao
  • 2015年05月13日 19:46
  • 1709

char/varchar/nvarchar的区别及其各自的使用场景

char char是定长的,也就是当你输入的字符小于你指定的数目时,char(8),你输入的字符小于8时,它会再后面补空值。当你输入的字符大于指定的数时,它会截取超出的字符。varchar(n...
  • w516162189
  • w516162189
  • 2017年12月27日 16:52
  • 75

informix的字符串类型详解

informix的字符串类型详解 lvarchar在9.4版本之后才可以用带指定长度的方式,如lvarchar(3000),不带长度则默认是2048字节,最大长度是32,739字节。所以对于...
  • zhengqiqiqinqin
  • zhengqiqiqinqin
  • 2013年10月14日 16:45
  • 5619
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SQLServer中char/varchar/nchar/nvarchar的区别
举报原因:
原因补充:

(最多只允许输入30个字)