热门文章 | 热门软件| 热门源码 | 热门电影 | 知识库 | 联系我们
软件 源码 教程 影视 健康 招聘
  HTML | JavaScript | ASP | PHP | JSP | NET | VB | VC | VF | Windows | Linux | Mysql | Mssql | Oracle | Struts 
当前位置: 创世纪计算机资源网 -> 文章频道 ->sqlserver 
站内搜索:
nvarchar和varchar,char有什么区别?
作者:佚名 来源:blog 整理日期:2007-5-19
  nchar   和   nvarchar  
  nchar   是固定长度   Unicode   数据的数据类型,nvarchar   是可变长度   Unicode   数据的数据类型,二者均使用   UNICODE   UCS-2   字符集。  
   
  nchar(n)  
   
  包含   n   个字符的固定长度   Unicode   字符数据。n   的值必须介于   1   与   4,000   之间。存储大小为   n   字节的两倍。nchar   在   SQL-92   中的同义词为   national   char   和   national   character。  
   
  nvarchar(n)  
   
  包含   n   个字符的可变长度   Unicode   字符数据。n   的值必须介于   1   与   4,000   之间。字节的存储大小是所输入字符个数的两倍。所输入的数据字符长度可以为零。nvarchar   在   SQL-92   中的同义词为   national   char   varying   和   national   character   varying。  
   
  注释  
  如果没有在数据定义或变量声明语句中指定   n,则默认长度为   1。如果没有使用   CAST   函数指定   n,则默认长度为   30。  
   
  如果希望列中所有数据项的大小接近一致,则使用   nchar。  
   
  如果希望列中数据项的大小差异很大,则使用   nvarchar。  
   
  使用   nchar   或   nvarchar   的对象被赋予数据库的默认排序规则,除非使用   COLLATE   子句赋予特定的排序规则。  
   
  SET   ANSI_PADDING   OFF   不适用于   nchar   或   nvarchar。SET   ANSI_PADDING   ON   永远适用于   nchar   和   nvarchar。  
   
  char   和   varchar  
  固定长度   (char)   或可变长度   (varchar)   字符数据类型。  
   
  char[(n)]  
   
  长度为   n   个字节的固定长度且非   Unicode   的字符数据。n   必须是一个介于   1   和   8,000   之间的数值。存储大小为   n   个字节。char   在   SQL-92   中的同义词为   character。  
   
  varchar[(n)]  
   
  长度为   n   个字节的可变长度且非   Unicode   的字符数据。n   必须是一个介于   1   和   8,000   之间的数值。存储大小为输入数据的字节的实际长度,而不是   n   个字节。所输入的数据字符长度可以为零。varchar   在   SQL-92   中的同义词为   char   varying   或   character   varying。  
   
  注释  
  如果没有在数据定义或变量声明语句中指定   n,则默认长度为   1。如果没有使用   CAST   函数指定   n,则默认长度为   30。  
   
  将为使用   char   或   varchar   的对象被指派数据库的默认排序规则,除非用   COLLATE   子句另外指派了特定的排序规则。该排序规则控制用于存储字符数据的代码页。  
   
  支持多语言的站点应考虑使用   Unicode   nchar   或   nvarchar   数据类型以尽量减少字符转换问题。如果使用   char   或   varchar:    
   
  如果希望列中的数据值大小接近一致,请使用   char。  
   
   
  如果希望列中的数据值大小显著不同,请使用   varchar。    
  如果执行   CREATE   TABLE   或   ALTER   TABLE   时   SET   ANSI_PADDING   为   OFF,则一个定义为   NULL   的   char   列将被作为   varchar   处理。    
   
  当排序规则代码页使用双字节字符时,存储大小仍然为   n   个字节。根据字符串的不同,n   个字节的存储大小可能小于   n   个字符。   
   
相关文章