淑昊柠 发表于 2016-11-5 05:36:28

sql server数据库编码(varchar,nvarchar的区别)

  开始什么都别说,先来个例子
  打开sql server创建一个表:
  create database testdb
  go
  create table test
(
name1 varchar(10),
  name2 nvarchar(10)
)
  go
  insert into test values('一二三四五','一二三四五六七八九十') --成功
  insert into test values('一二三四五六','一二三四五六七八九十') --第一个字段插入失败
  insert into test values('一二三四五','一二三四五六七八九十一') --第二个字段插入失败
  第一个字段对多可以插入汉字5个
  第二个字段对多可以插入汉字10个
  ------------------------------------------------------------------------------------
  insert into test values('1234567890','1234567890') --成功
  insert into test values('12345678901','1234567890') --第一个字段插入失败
  insert into test values('1234567890','12345678901') --第二个字段插入失败
  (插入字母和一些ascii字符符号,结果一样)
  第一个字段对多可以插入ascii码10个
  第二个字段对多可以插入ascii码10个
  ---------------------------------------------------------------------------------------
  insert into test values('一二三aaaa','一二三四五六七八九十') --成功
  insert into test values('一二三aaaab','一二三四五六七八九十') --第一个字段插入失败
  insert into test values('一二三aaaa','一二三四五六七八ab') --成功
  insert into test values('一二三aaaa','一二三四五六七八abc') --第二个字段插入失败
  --------------------------------------------------------------------------------------
  总结:varchar类型 ascii最多可以存10个,汉字最多可以存5个
  nvarchar类型 ascii和汉字最多都可以存10个
  说明:varchar类型 ascii字符占一个字节,汉字占两个字节
  nvarchar类型 总是一个字符占2个字节
  而且:
  create table test
(
name1 varchar(10), --所占空间10个字节
  name2 nvarchar(10) --所占空间20个字节
)
  验证:
  select * from test
http://p.blog.csdn.net/images/p_blog_csdn_net/xssh913913/test.bmp
  select name1,len(name1),name2,len(name2) from test
http://p.blog.csdn.net/images/p_blog_csdn_net/xssh913913/test1.bmp
页: [1]
查看完整版本: sql server数据库编码(varchar,nvarchar的区别)