char和nchar,varchar和nvarchar的区别

一、定义:
char:固定长度,存储ANSI字符,不足的补英文半角空格。//长度固定的英文
nchar:固定长度,存储Unicode字符,不足的补英文半角空格//长度固定的中文
varchar:可变长度,存储ANSI字符,根据数据长度自动变化。//长度不固定的英文

varchar[(n)]:长度为 n 个字节的可变长度且非 Unicode的字符数据。n 必须是一个介于 1 和
8,000之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。所输入的数据字符长度可以为零。

nvarchar:可变长度,存储Unicode字符,根据数据长度自动变化。//长度不固定的中文

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

注意:ANSI主要是以单字节来存储数据,一般适合英文。而我们常用的汉字需要用两个字节来存储,所以就要使用unicode的数据类型,不然读取出来的数据可能会乱码。

二、区别:

①从存储方式上,nvarchar是按字符存储的,而 varchar是按字节存储的;
②从存储量上考虑, varchar比较节省空间,因为存储大小为字节的实际长度,而 nvarchar是双字节存储;
③在使用上,如果存储内容都是英文字符而没有汉字等其他语言符号,建议使用varchar;含有汉字的使用nvarchar,因为nvarchar是使用Unicode编码,即统一的字符编码标准,会减少乱码的出现几率;
④如果你做的项目可能涉及不同语言之间的转换,建议用nvarchar。

三、优缺点:

Nvarchar优点:判断字符串的时候可以不需要考虑中英文两种字符的差别,可以避免程序中乱码的问题。
缺点:存储英文字符会增大一倍的存储空间.但是在存储代价已经很低廉的情况下,优先考虑兼容性会给你带来更多好处的,效率没有varchar高。

四、为什么要用nvarchar?

有n前缀的,n表示Unicode字符,即所有字符都占两个字节,nchar,nvarchar
字符中,英文字符只需要一个字节存储就足够了,但汉字众多,需要两个字节存储,英文与汉字同时存在时容易造成混乱,Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它把所有的字符(英文,中文及其它文字)都用两个字节表示,统一处理,即英文字符也是用两个字节表示。

五、有关var的简单介绍:

有var前缀的,表示是实际存储空间是变长的:varchar,nvarchar
所谓定长就是长度固定的,当输入的数据长度没有达到指定的长度时将自动以英文空格在其后面填充,使长度达到相应的长度;而变长字符数据则不会以空格填充,比较例外的是,text存储的也是可变长。

六、如何使用这些类型?

如果你肯定存储的数据长度,而且不包中文的,可以选择char类型。 如果肯定存储的数据长度,但可能包括中文,可以选择nchar类型。
如果不确定存储的数据长度,存储只有英文、数字的最好用varchar
如果不确定存储的数据长度,也有可能有中文,可以选择nvarchar类型,在SQL Server2005中也是比较常用的字符数据类型。

char和nchar,varchar和nvarchar 之间的区别相关推荐

  1. 数据库有char和nchar varchar 和nvarchar区别是啥?

    "sqlserver里面有char和nchar,那个n据说是指unicode的数据,这个是什么意思."        并不是所有简单的问题都很容易回答,就像这个问题一样.于是我答应 ...

  2. SQL Server中的char,nchar,varchar和nvarchar有什么区别?

    nvarchar是什么意思? SQL Server中的char , nchar , varchar和nvarchar什么区别? #1楼 char :固定长度的字符数据,最大长度为8000个字符. nc ...

  3. Sqlserver中char,nchar,varchar与Nvarchar的区别

    1. char类型: 对英文(ASCII)字符占用1个字节,对一个汉字占用2个字节,CHAR存 储定长数据很方便,CHAR字段上的索引效率极高,比如定义char(10),那么不论你存储的数据是否达到了 ...

  4. 简单描述char(n)、varchar(n)、nchar(n)、nvarchar(n)的区别

    它们的区别概括成: char,nchar :定长,速度快,占空间大,需处理 varchar,nvarchar :不定长,空间小,速度慢,无需处理 nchar.nvarchar:处理Unicode码 c ...

  5. mysql server nchar_Sqlserver中char,nchar,varchar与Nvarchar的区别分析

    1. char类型: 对英文(ASCII)字符占用1个字节,对一个汉字占用2个字节,CHAR存储定长数据很方便,CHAR字段上的索引效率极高,比如定义char(10),那么不论你存储的数据是否达 到了 ...

  6. oracle中varchar 和 nvarchar2的区别,Oracle中char,varchar,varchar2,nvarchar,nvarchar2的区别

    一.概述 1.char char的长度是固定的,比如说,你定义了char(20),即使你你插入abc,不足二十个字节,数据库也会在abc后面自动加上17个空格,以补足二十个字节: char是区分中英文 ...

  7. sql server中的varchar和Nvarchar有什么区别?

    很多开发者进行数据库设计的时候往往并没有太多的考虑char, varchar类型,有的是根本就没注意,因为存储价格变得越来越便宜了,忘记了最开始的一些基本设计理论和原则,这点让我想到了现在的年轻人,大 ...

  8. char* 大小_SQL Server中char, nchar, varchar和nvarchar数据类型有何区别

    当问及CHAR,VARCHAR,NCHAR和NVARCHAR这些数据类型之间的差异时,这个看似很简单,但有时您也会感到困惑. 要在数据库存储字符.数值和特殊字符可以使用这4种数据类型,那么这4种数据类 ...

  9. Oracle中varchar,varchar2,nvarchar,nvarchar2的区别

    -varchar,varchar2 联系: 1.varchar/varchar2用于存储可变长度的字符串 比如varchar(20),存入字符串'abc',则数据库中该字段只占3个字节,而不是20个字 ...

最新文章

  1. 2015年下半年计划
  2. python3 文件 复制、重命名、移动、删除
  3. Maven-EclipseEE使用Maven构建Java web项目从0到1
  4. biostar handbook: 第一周笔记汇总+第二周任务布置
  5. geforce experience不能登录_青椒第二课堂禁毒平台|官方网站登录
  6. Codeforces Round #304 (Div. 2) D. Soldier and Number Game 数学 质因数个数
  7. 【2018百度之星资格赛】1002 子串查询
  8. stm32无源蜂鸣器定时器_使用STM32控制无源蜂鸣器发声播放音乐
  9. autocaddesk之 autocad2014的安装
  10. 八数码问题BFS算法
  11. Spark之火可以燎原——访Spark亚太研究院院长、首席专家王家林
  12. C# 调用outlook 收发邮件
  13. 关于Liferay的deactivate user的研究
  14. Spring Boot WebFlux 入门
  15. 2017年第38届国际名家具(东莞)展览会会刊(参展商名录)
  16. Android Canvas画布上放图片,保存图片为黑色,转换成PNG格式还是黑色,画布设置白色则图片不显示,特例出完美的解决办法
  17. java第一个代码Hello,World
  18. matlab矩阵保存到表格,将matlab求出的矩阵保存在Excel表格中
  19. 清空Github仓库方法
  20. 接口测试中的接口到底是什么?

热门文章

  1. 自动白平衡技术(WhiteBalance)(转自Harri的blog)
  2. 网易Airtest简介
  3. Hadoop精华问答 | 如何设置单个任务占用的内存量和CPU数目?
  4. 4、公司融资 - 开公司创业系列文章
  5. 教授建议:科研人员压力太大,应该培养一些吃喝玩乐之类“庸俗”的爱好
  6. 汇编:汇编与C派系语言混用以及对应LLDB常用指令
  7. 蒙特卡洛-马尔科夫链(MCMC)初步
  8. iOS开发中MD5加密算法的实现
  9. 苹果CMS V8 韩剧TV 一款特别精美漂亮的模板 包含PC端+WAP端
  10. 男生除了干计算机软件还有什么职业,理想男朋友职业都有哪些?前10名竟然是……...