A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 熊丽 中级黑马   /  2013-8-7 22:14  /  1184 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

SQL中varchar和nvarchar有什么区别?

评分

参与人数 1技术分 +1 收起 理由
赵宗荣 + 1

查看全部评分

5 个回复

倒序浏览
varchar是 非Unicode 字符数据。
nvarchar是 Unicode 字符数据。
Unicode 是用两个字节表示每个字符的字符编码方案。所以如果存储的是英文,varchar能比nvarchar更省空间。
如果是中文就用nvarchar好些。
回复 使用道具 举报
好像是nvarchar可以带中文字符,varchar不可以带中文字符
回复 使用道具 举报
varchar(n)
长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。

nvarchar(n)
包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。

两字段分别有字段值:我和coffee
那么varchar字段占2×2+6=10个字节的存储空间,而nvarchar字段占8×2=16个字节的存储空间。

如字段值只是英文可选择varchar,而字段值存在较多的双字节(中文、韩文等)字符时用nvarchar

上面是一个总结介绍,通过上面的介绍,可以知道。

varchar(4) 可以输入4个字母,也可以输入两个汉字

nvarchar(4) 可以输四个汉字,也可以输4个字母,但最多四个

评分

参与人数 1技术分 +1 收起 理由
赵宗荣 + 1

查看全部评分

回复 使用道具 举报
工作中 实际遇到过 一个问题
繁体库 如果是varchar的话 输入的若是 简体则是乱码 貌似是这个bug吧 后来就统一改成nvarchar了
回复 使用道具 举报
varchar与nvarchar的相同点,在数据库中都代表字符类型;
区别:如果在程序设计中某字段的输入值可能会包含中文或其他除英文外的特殊字符,就用nvarchar,这样做可以避免存入数据库的字符乱码;
如果输入值中可以确定只是英文的输入,就可以直接用varchar;
以上仅是个人的理解,希望可以帮到你~~~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马