nchar与char有什么区别?

本文详细解释了数据库中的几种字符数据类型,包括固定长度的char、可变长度的varchar以及基于Unicode的nchar。通过实例展示了不同类型在存储过程中的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

char   和   varchar  
  固定长度   (char)   或可变长度   (varchar)   字符数据类型。  
   
  nchar  
  根据   unicode   标准所进行的定义,用给定整数代码返回   unicode   字符。  
   
 

发表者:czfeng
char是固定长度的字节,varchar是可变长度的字节,nchar是unicode编码的固定字符长度。
  如:12345     在char(6)存储为123456加一个空格,共6个字节。  
          中国       在char(6)存储为中国加两个空格,共6个字节。  
          12345     在varchar(6)存储为123456,共5个字节。  
          中国       在varchar(6)存储为中国,共4个字节。  
  nchar(6)对汉字和半角字符处理时一样的,即可以存储6个汉字,也可以存储6个字母  



在索引中输入:char       ;   varchar         ;   nchar          
   
  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   个字符。  
   
   
   
  nchar  
  根据   unicode   标准所进行的定义,用给定整数代码返回   unicode   字符。  
   
  语法  
  nchar   (   integer_expression   )    
   
  参数  
  integer_expression  
   
  介于   0   与   65535   之间的所有正整数。如果指定了超出此范围的值,将返回   null。  
   
  返回类型  
  nchar(1)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值