黑马程序员技术交流社区

标题: 谁能说明:在 MS SQL Server 中 char、varchar、nvarchar 三者的区别 [打印本页]

作者: 朱磊    时间: 2011-12-31 12:56
标题: 谁能说明:在 MS SQL Server 中 char、varchar、nvarchar 三者的区别
本帖最后由 朱磊 于 2011-12-31 16:58 编辑

{:soso_e121:}
作者: 张涛    时间: 2011-12-31 13:28
  1.从存储方式上,nvarchar是按字符存储的,而 varchar是按字节存储的;

      2.从存储量上考虑, varchar比较节省空间,因为存储大小为字节的实际长度,而 nvarchar是双字节存储;

      3.在使用上,如果存储内容都是英文字符而没有汉字等其他语言符号,建议使用varchar;含有汉字的使用nvarchar,因为nvarchar是使用Unicode编码,即统一的字符编码标准,会减少乱码的出现几率;

      4.如果你做的项目可能涉及不同语言之间的转换,建议用nvarchar。
作者: 独孤飞雪    时间: 2011-12-31 13:58
可以简单的认为char是字符,比如char(5)只允许输入5个字节;
varchar是字符串,比如varchar(10)只允许输入10个字符;
nvarchar是含有中文字符的字符串,他也是有长度的。。。
作者: 傅涌钦    时间: 2011-12-31 14:05
4.        nvarchar(含有非ASIC码信息,比如中文,日文等等)和varchar定义数据不确定的,数据确定的用char,不足长度n的部分会用空格填充;
作者: 井路静    时间: 2011-12-31 14:07
简单的说:
char存储的是字符类型的数据,是一个个的字符,是定长的,如表中的一个字段定义为name  char (10),这时如果name的字母个数小于10个时,系统会用空格填充剩下的空间。
而varchar和nvarchar表示的字符串,可以是变长的,即它所占的空间随着字符串的长度变化而变化。
varchar和nvarchar的唯一区别就是,若存储的内容包含中文等非英文字母时用nvarchar,以防止乱码的出现。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2