char类型: 对英文(ASCII)字符占用1个字节,对一个汉字占用2个字节,char存储定长数据很方便,char字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间。因为是固定长度,所以速度效率高。

varchar类型:varchar 的类型不以空格填满,比如varchar(100),但它的值只是"qian",则它的值就是"qian",而char 不一样,比如char(100),它的值是"qian",而实际上它在数据库中是"qian "(qian后共有96个空格,就是把它填满为100个字节)。

由于char是存储定长数据,所以它的速度会比varchar快得多!但程序处理起来要麻烦一点,要用trim之类的函数把两边的空格去掉!

varchar存储变长数据,但存储效率没有char高。如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为 varchar(10)是最合算的。varchar类型的实际长度是它的值的实际长度+1。为什么“+1”呢?这一个字节用于保存实际使用了多大的长度。

nchar类型和nvarchar类型是怎么一回事呢?为了与其他多种字符的转换,如中文,音标等,对每个英文(ASCII)字符都占用2个字节,对一个汉字也占用两个字节,所有的字符都占用2个字节。

例如

varchar(n):变长型字符数据类型,存储最长长度为8,000 个字符。

举个例子:
insert a select '木子a'
--- 存储长度为5个字节,余下的3个字节全部释放
insert a select '木神易'
----存储长度为6个字节,余下的2个字节全部释放
---意思是varchar变长字符数据类型与存储数据的实际长度是一致的

nvarchar(n):可变长度 Unicode 数据,其最大长度为 4,000 字符。
字节的存储大小是所输入字符个数的两倍,就是说它是双字节来存储数据的。
如果存储数据如果存在单字节时,它也是以双字节来占用存储的。

varchar一般适用于英文和数字,nvarchar适用中文和其他字符,其中N表示Unicode常量,可以解决多语言字符集之间的转换问题

转载于:https://www.cnblogs.com/c-y-across-I/archive/2013/05/03/3056873.html

char,nchar,varchar与nvarchar区别相关推荐

  1. nchar,char,varchar与nvarchar区别(收藏)

    最近在公司里做项目,遇到一个问题,建的数据库里的中文字符和音标显示为乱码,组里的人所有字符都用varchar表示,所以出现上诉问题,当改为Nvarchar后,问题得到解决.所以有必要把他们的区别再重新 ...

  2. nchar,char,varchar与nvarchar区别

    最近在公司里做项目,遇到一个问题,建的数据库里的中文字符和音标显示为乱码,组里的人所有字符都用varchar表示,所以出现上诉问题,当改为Nvarchar后,问题得到解决.所以有必要把他们的区别再重新 ...

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

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

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

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

  5. [转]nchar,char,varchar与nvarchar区别

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

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

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

  7. 在Oracle中CHAR,NCHAR,VARCHAR,VARCHAR2,NVARCHAR2这五种类型的区别

    [在Oracle中CHAR,NCHAR,VARCHAR,VARCHAR2,NVARCHAR2这五种类型的区别 ] 1.CHAR(size)和VARCHAR(size)的区别  CHAR为定长的字段,最 ...

  8. mysql nvarchar用什么代替_mysql中char、varchar、nvarchar数据类型的用法区别

    mysql中char.varchar.nvarchar数据类型的用法区别 mysql中char.varchar.nvarchar数据类型的用法区别: 说明: 1.char: 固定长度的非 Unicod ...

  9. 谈谈char ,nchar,varchar,nvarchar 和Uniqueidentifier

    在SQL server数据库中这几个类型应该是比较常用的,这篇文章主要也是和大家一起讨论下这几个类型. 先重点看前面4个:char ,nchar,varchar,nvarchar Msdn解释如下: ...

  10. varchar和Nvarchar区别 ----转载

    varchar和Nvarchar区别 Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示 如果还为了这个纠结,就直接看看后面的解 ...

最新文章

  1. python做啥用-你都用 Python 来做什么?
  2. ionic overflow:auto失效
  3. 运行QQ出现initialization failure 0x0000000c错误和浏览器上不了网
  4. mysql 开发 生产_在没有表锁定的情况下在巨大的MySQL生产表...
  5. win7 找不到 计算机策略组,win7打开组策略报错:找不到资源string.Advanced_EnableSSL3Fallback...
  6. solr 3.5 配置及应用(二)
  7. 【USACO 1.3】Ski Course Design
  8. java.lang.IllegalStateException: No modifications are allowed to a locked ParameterMap问题的解决
  9. jQuery效果-----fadeIn()、fadeOut()、fadeToggle()、fadeTo()
  10. error C2668: “pow”: 对重载函数的调用不明确
  11. Julia :复合类型struct当索引时
  12. matlab做均值和方差,matlab求均值,方差
  13. Matlab学习笔记之Matlab中括号用法
  14. 如何看误差累积分布图
  15. 这届年轻人越来越爱养宠物了
  16. 番茄花园 产业链 洪磊 中国
  17. 拍摄制作360度全景图有哪些技巧?
  18. 计算机网络中man是,计算机网络分类为LAN、MAN和()。
  19. OpenCV 表盘指针自动读数
  20. element-ui table的选中行高亮和取消高亮

热门文章

  1. 传统 JDBC 编程详解
  2. 二叉树的基本操作(建立与遍历)
  3. idea存在包但是运行项目一直报java.lang.NoClassDefFoundError的问题
  4. sql:MySQL 6.7 表,视图,存储过程结构查询
  5. python学习笔记-day6-【python如何写excel表】
  6. C与C++中const差别
  7. 一道JS面试题目引发的思考
  8. 求两等长升序序列的中位数
  9. 2021-01-25
  10. Spring Boot 第一个小程序之又来Hello World了