在数据库中建表时,需要给数据定义一个数据库中的数据库类型,当需要给String类型定义一个数据库中的类型时,可以看见有两个选择,一个是varchar,另一个是char,有很多人不清楚两者的区别,包括自己在内,搜索资料,总结一下两者的区别。

1、varchar的长度是可变的,char的长度不可变。

也就是说当将两者的长度都定为10,然后向其中存入一个字符串“good”,显然字符串“good”的长度不到10,当定义类型为char类型时,存入的长度依旧是10,由字符串“good”和后面的6个空格组成。当我们定义为varchar类型时,长度就变为了4,“good”字符串原有的长度。

在获取数据时,char类型的数据需要使用trim()方法,去掉字符串后面多余的空格。但varchar不需要。

2、存储时,char类型的数据要比varchar类型的数据速度更快,因为其长度固定,方便存储于查找。

3、从存储空间的角度讲,因为插入类型数据的长度固定,有时候需要用空格进行占位,所以存储数据时占用更大的空间。而varchar却不会。char是以空间换取时间效率,而varchar是以空间效率为首位的。

4、char的存储方式是,对英文字符(ASCII)占用1个字节,对一个汉字占用两个字节;而varchar的存储方式是,对每个英文字符占用2个字节,汉字也占用2个字节,两者的存储数据都非unicode的字符数据。

最新文章

  1. java中关键字this的使用
  2. PHP中常见魔术方法解析
  3. linux mingling
  4. ZeroMQ接口函数之 :zmq_ipc – ZMQ本地进程间通信传输协议
  5. 用c#开发微信 (4) 基于Senparc.Weixin框架的接收事件推送处理 (源码下载)
  6. NativeInt
  7. 第六十三篇、runtime实现归解档
  8. Windows上帝模式
  9. mysql join 的同时可以筛选数据
  10. [转]mac下Python升级到指定的版本
  11. 基于visual Studio2013解决面试题之0901奇偶站队
  12. Android - JNI加入标准C++文件
  13. DialogFragment学习笔记
  14. HTTP报错401和403详解及解决办法
  15. 一种使用emwin库函数导致hardfault的情况
  16. Sqoop 介绍、安装及环境配置
  17. DS哈希查找--线性探测再散列
  18. [转]PHP中替换换行符
  19. Pig parallel reduce并行执行数
  20. Spark与Pandas中DataFrame对比

热门文章

  1. 实验二:ICMP重定向攻击
  2. [VB.NET][C#]调用API获取或设置键盘按键状态
  3. 交换机 路由器 OSI7层模型
  4. Netty源码分析第6章(解码器)---->第1节: ByteToMessageDecoder
  5. java抽象类与接口区别
  6. 别再犯低级错误,带你了解更新缓存的四种Desigh Pattern
  7. Spark Streaming流式处理
  8. exec命令详解
  9. logout命令详解
  10. 在Web Page中包含PHP代码