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

来源:互联网 发布:js随机数 编辑:程序博客网 时间:2024/06/07 05:00

 开始什么都别说,先来个例子

打开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

      select name1,len(name1),name2,len(name2) from test