1、CHAR的长度是不可变的,而VARCHAR的长度是可变的,也就是说,定义一个CHAR[10]和VARCHAR[10],如果存进去的是‘ABCD’, 那么CHAR所占的长度依然为10,除了字符‘ABCD’外,后面跟六个空格,而VARCHAR的长度变为4了,取数据的时候,CHAR类型的要用trim()去掉多余的空格,而VARCHAR类型是不需要的。
2、CHAR的存取速度要比VARCHAR快得多,因为其长度固定,方便程序的存储与查找;但是CHAR为此付出的是空间的代价,因为其长度固定,所以难免会有多余的空格占位符占据空间,可以说是以空间换取时间效率,而VARCHAR则是以空间效率为首位的。
3、CHAR的存储方式是,一个英文字符(ASCII)占用1个字节,一个汉字占用两个字节;而VARCHAR的存储方式是,一个英文字符占用2个字节,一个汉字也占用2个字节。
4、两者的存储数据都是非unicode的字符数据。
相同点:
char(n),varchar(n)中的n都代表字符的个数
超过char,varchar最大长度n的限制后,字符串会被截断。
不同点:
char不论实际存储的字符数都会占用n个字符的空间,而varchar只会占用实际字符应该占用的字节空间加1(实际长度length,0<=length<255)或加2(length>255)。因为varchar保存数据时除了要保存字符串之外还会加一个字节来记录长度(如果列声明长度大于255则使用两个字节来保存长度)。
能存储的最大空间限制不一样:char的存储上限为255字节。
char在存储时会截断尾部的空格,而varchar不会。

列的字符串类型可以是什么?

字符串类型是:SET、BLOB、ENUM、CHAR、TEXT、VARCHAR

BLOB和TEXT有什么区别?

  • BLOB是一个二进制对象,可以容纳可变数量的数据。有四种类型的BLOB:TINYBLOB、BLOB、MEDIUMBLO和 LONGBLOB
  • TEXT是一个不区分大小写的BLOB。四种TEXT类型:TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT。
    BLOB 保存二进制数据,TEXT 保存字符数据。

CHAR 和 VARCHAR 的区别?相关推荐

  1. mysql中char与varchar的区别分析(补充一句,int和integer没区别)

    转自:http://www.jb51.net/article/23575.htm 在mysql教程中char与varchar的区别呢,都是用来存储字符串的,只是他们的保存方式不一样罢了,char有固定 ...

  2. mysql数据库varchar的区别_MySQL数据库char与varchar的区别分析及使用建议

    在数据库中,字符 型的数据是最多的,可以占到整个数据库的80%以上.为此正确处理字符型的数据,对于提高数据库的性能有很大的作用.在字符型数据中,用的最多的就是 Char与Varchar两种类型.前面的 ...

  3. mysql中char与varchar的区别分析

    原文网址:http://www.jb51.net/article/23575.htm mysql中char与varchar的区别分析 作者: 字体:[增加 减小] 类型:转载 在mysql教程中cha ...

  4. char 和 varchar 的区别,数据库索引B+树

    char 和 varchar 的区别 char(n) :固定长度,效率高:缺点:占用空间:存储固定长度的,使用 char 非常合适. varchar(n) :可变长度,存储的值是每个值占用的字节再加上 ...

  5. 通过char与varchar的区别,学习可变长的字符类型

    转自http://www.uphtm.com/database/232.html 在mysql教程中char与varchar的区别呢,都是用来存储字符串的,只是他们的保存方式不一样罢了,char有固定 ...

  6. MySQL中char与varchar的区别

    字符与字节的区别 一个字符由于所使用的字符集的不同,会并存储在一个或多个字节中,所以一个字符占用多少个字节取决于所使用的字符集 注意:char与varchar后面接的数据大小为存储的字符数,而不是字节 ...

  7. mysql数据库varchar_MySQL数据库char与varchar的区别分析及使用建议

    本文主要介绍了mysql中VARCHAR与CHAR字符型数据的差异以及这两种字符型数据在项目中的使用建议,真心不错.值得一看.小编有种受益匪浅的感觉. 在数据库中,字符 型的数据是最多的,可以占到整个 ...

  8. mysql中char是什么意思_mysql中char与varchar的区别

    在建立数据库表结构的时候,为了给一个String类型的数据定义一个数据库的数据库类型,一般参考的都是char或者varchar,这两种选择有时候让人很纠结,今天想总结一下它们两者的区别,明确一下选择塔 ...

  9. char和varchar的区别、区别的原因以及常用场景举例

    一.区别 1.最大长度: char最大长度是255字符,varchar最大长度是65535个字节. 2.定长: char是定长的,不足的部分用隐藏空格填充,varchar是不定长的. 3.空间使用: ...

最新文章

  1. 不使用加减乘除法,完成两个数的加法
  2. 开发日记-20190609 关键词 记录一次失败,感悟,畅想未来
  3. ProxyShell利用分析1——CVE-2021-34473
  4. 传智杯Java终端有一天您厌烦了电脑上又丑又没用的终端,打算自己实现一个 Terminal
  5. MySQL - 创建存储过程Procedure,Do While实现循环
  6. [教程]添加yueue.ADOKeycap数据库组件到您的项目
  7. 【FTP】org.apache.commons.net.ftp.FTPClient实现复杂的上传下载,操作目录,处理编码...
  8. chrome插件推荐
  9. STM8L_库函数-模板搭建
  10. 无法修改计算机时间权限,无法修改系统时间怎么办
  11. php web helloworld,webim_server.php
  12. [Linux]学习笔记3:用户及文件权限管理
  13. Attributes as Operators
  14. 保研一年来的心路历程
  15. C/C++笔试题(很多)
  16. /Volumes/TeXLive2019/install-tl: No binary platform specified/available, quitting.
  17. 计算机网络_实验5_集线器与交换机对比
  18. linux rhel dns配置,RedHat Linux DNS配置指南
  19. 停车场反向寻车实现方法和算法
  20. python编程练习:求最大公约数和最小公倍数

热门文章

  1. idea本地起项目,手动自由切换dev、test环境问题
  2. android应用app开发
  3. 【学习笔记】Ubuntu双系统+搭建个人服务器
  4. 【转载】利用ENVI直接建立掩膜去除背景Inf值或NaN值
  5. linux分区出现hfs,在Arch Linux上挂载HFS +分区
  6. Centos 7 x64 搭建文件服务器HFS
  7. matlab fread 详细讲解
  8. getchar消除回车符号
  9. 终于,百度网盘等来了真正的对手
  10. Autodesk Alias AutoStudio 2022.0.1 x64