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

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值