MySQL中char和varchar的区别是什么

区别一、定长和变长的区别

1、char 表示定长,长度固定;

2、varchar表示变长,即长度可变。

当所插入的字符串超出它们的长度时,视情况来处理,如果是严格模式,则会拒绝插入并提示错误信息,如果是宽松模式,则会截取然后插入。如果插入的字符串长度小于定义长度时,则会以不同的方式来处理,如char(10),表示存储的是10个字符,无论你插入的是多少,都是10个,如果少于10个,则用空格填满。而varchar(10),小于10个的话,则插入多少个字符就存多少个。

varchar怎么知道所存储字符串的长度呢?实际上,对于varchar字段来说,需要使用一个(如果字符串长度小于255)或两个字节(长度大于255)来存储字符串的长度。但是因为他需要有一个prefix来表示他具体bytes数是多少(因为varchar是变长的,没有这个长度值他不知道如何读取数据)。

区别二、存储的容量不同

1、对 char 来说,最多能存放的字符个数 255,和编码无关。

2、而 varchar 呢,最多能存放 65532 个字符。VARCHAR 的最大有效长度由最大行大小和使用的字符集确定。整体最大长度是 65,532字节

在MySQL中用来判断是否需要进行对据列类型转换的规则

1、在一个数据表里,如果每一个数据列的长度都是固定的,那么每一个数据行的长度也将是固定的.

2、只要数据表里有一个数据列的长度的可变的,那么各数据行的长度都是可变的.

3、如果某个数据表里的数据行的长度是可变的,那么,为了节约存储空间,MySQL会把这个数据表里的固定长度类型的数据列转换为相应的可变长度类型.例外:长度小于4个字符的char数据列不会被转换varchar类型

python中char是什么意思_MySQL中char和varchar的区别是什么相关推荐

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

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

  2. MySQL中count是什么函数_MySQL中

    本篇文章给大家带来的内容是关于mysql大表中count()的用法以及mysql中count()的优化,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助.一个单表中包含有6000w+的数据 ...

  3. mysql中engine是什么意思_mysql中engine=innodb和engine=myisam的区别

    最开始用MySQL Administrator建数据库的时候,表缺省是InnoDB类型,也就没有在意.后来用Access2MySQL导数据的时候发现只能导成 MyISAM类型的表,不知道这两种类型有什 ...

  4. php中使用mysql的视图_MYSQL中视图的用法介绍(代码示例)

    本篇文章给大家带来的内容是关于MYSQL中视图的用法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.什么是视图 执行一条SQL,将结果集保存在一张虚拟表中 (相关 ...

  5. mysql中创建用户并授权_MySQL中创建用户及授权[转]

    GRANT 语句的语法如下: GRANT privileges (columns) ON what TO user IDENTIFIEDBY "password" WITH GRA ...

  6. mysql中怎么查询单行单列_MySql中的子查询-结果单行单列

    MySQL是开源免费和功能多面的小型数据库,MySQL也是目前流行通用的关系型数据库,已经被 Oracle 收购了.随着版本更新升级,加入一些高级功能,MySQL6.x 版本也开始收费.不过本教程将使 ...

  7. mysql中存储引擎是啥_mysql中的存储引擎

    mysql存储引擎概述 什么是存储引擎? MySQL中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平并且最终提供广泛的不同的功能和能力. ...

  8. mysql中如何去除重复数据_MySQL中如何删除重复数据只保留一条

    在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断SELECT *FROM peopleWHERE p ...

  9. mysql中给用户添加密码_MySql中添加用户,新建数据库,用户授权,删除用户,修改密码...

    MySql中添加用户,新建数据库,用户授权,删除用户,修改密码(注意每行后边都跟个;表示一个命令语句结束): 1.新建用户 登录MYSQL: @>mysql -u root -p @>密码 ...

最新文章

  1. unity中的UI状态机,用于各界面之间的切换和跳转
  2. 汇编 int 10h
  3. centos下部署启动elasticsearch错误集合与解决方案
  4. win7 下jenkins配置与使用
  5. Android之用setColorFilter在ImageView上面覆盖一层灰色的图层
  6. java判断题_【Java判断题】请大神们进来看下、这些判断题你都知道多少~
  7. 定时器的实现原理 不消耗cpu_一直在使用JDK动态代理, 不明白原理如何实现?
  8. delphi 字符串占用空间_字符串在Python内部是如何省内存的
  9. springboot 物联网_【阿里云生活物联网架构师专题】基于在 SpringBoot Java私有云上对接阿里云物联网,实现M2M设备数据流转。...
  10. 观众喜欢,就有人说大陆人吃不起榨菜
  11. python下载文件的11种方式_python 下载文件的多种方法汇总
  12. 51单片机之程序下载不进单片机
  13. 学习继电器的工作原理及作用
  14. 安全的随想网络空间测绘
  15. 台式win10系统你要来自Trustedinstaller的权限才能对此文件进行更改?
  16. 读河南干旱帖有感而发的一天(20191006)
  17. 浏览器 .avi视频播放demo
  18. pandas取整 pandas取整数 pandas 转成int
  19. Unity UI抗锯齿测试
  20. 网络流最大流初步-Push–relabel maximum flow algorithm

热门文章

  1. Kafka消费者消费方式
  2. linux tuxedo查看服务进程数,tuxedo管理命令之tmboot与tmshutdown
  3. html怎么将背景设为黑色,文字设为白色
  4. 测试用例评审的旁观记录
  5. Express-get和post
  6. 从xgboost, lightgbm 到catboost
  7. qq邮箱日历同步服务器,QQ邮箱,腾讯企业邮箱,让你的日程跟着手机走
  8. 新手学习 python 的好工具:PyScripter
  9. 一对同居男女同一天的日记
  10. 华为Ascend:进一步做好产品差异化是后续重点