900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > MySQL中char与varchar的区别

MySQL中char与varchar的区别

时间:2019-07-16 04:49:45

相关推荐

MySQL中char与varchar的区别

数据库|mysql教程

MySQL,char,varchar,区别,char,var

数据库-mysql教程

古典博客源码,vscode代码被删除,ubuntu控制gpio,打开页面显示tomcat,爬虫 ,兄弟连php 百度云,淄博seo推广如何收费,网站全屏轮播图代码,模板手机游戏lzw

char和varchar类型相似,但是它们的存储和检索方式不同。在MySQL5.0.3,它们在最大长度和是否保留尾部空格也不相同。 char和varchar定义了字符串的最大长度。例如,char(30)可以放30个字符。 char列的长度在你建表的时候,就是你定义的固定长度。值的范围是0

百科站源码,vscode绘制教程,ssh与ubuntu,tomcat异步响应,sqlite 模糊查询,查看域名服务器,能每日签到的日历插件,美团web前端框架,外网影评爬虫,php程序设计项目教程,seo优化 标题,资讯新闻类网站源码,网页加微信代码,手机app模板html,简单的js登录页面,asp人员信息管理系统源码,五克商城小程序教程lzw

摄像头 安卓源码 app,ubuntu无桌面系统,tomcat不支持中文图片,淘宝爬虫加密,php如何传服务器,456seolzw

char和varchar类型相似,但是它们的存储和检索方式不同。在MySQL5.0.3,它们在最大长度和是否保留尾部空格也不相同。

char和varchar定义了字符串的最大长度。例如,char(30)可以放30个字符。

char列的长度在你建表的时候,就是你定义的固定长度。值的范围是0~255。char值存储的时候,右部以空格来填充到指定的长度。当检索char的时候,会自动去掉尾部的空格。

varchar列是变长的。在MySQL5.0.3之前可以定义的长度是0~255,之后可以定义到0~65535。在MySQL5.0.3及以后的版本中varchar列的有效长度,受行的最大值和使用的字符限制。

对比char,varchar,加上前缀的数据长度是当做一个字节还是两个字节存储。这个前缀的长度表明了值的字节数。如果值不超过255的话,这个列用一个字节的长度,如果这个值可能超过255个字节,那么就使用两个字节的长度。

如果严格的SQL模式没有启用,你分配了一个char或者varchar列超出了列的最大长度,那么这个值就会被截短以填充列,这时候就会产生一个警告。对于截短的非空格字符,你可以设置严格的SQL模式,来产生一个错误。

对于varchar列来说,SQL模式在启用的时候,大量的尾部空格在插入之前都会被截短,产生一个警告。对于char列来说,不管SQL模式是否被启用,都会静默地去掉插入值的过量的尾部空格。

varchar值存储的时候是不会填充的。如何处理尾部空格,取决于版本。在MySQL5.0.3中,当值存储和检索的时候,保留尾部空格,和标准的SQL保持一致。在MySQL5.0.3之前,值被保存到varchar列的时候,尾部空格会被剔除。这样也就意味着检索值的时候,也不存在这些空格。

在MySQL5.0.3之前,如果你需要一个不去掉尾部空格的数据类型的时候,要考虑BLOB或者TEXT类型。同样当你存储加密数据或者压缩数据的时候,也要使用BLOB列,而不是char或者varchar列,来避免需要改变值的时候,尾部空格的潜在问题。

下面的表格来说明char和varchar的存储方式和显示结果的差别。(假设列用的很简单的字符,使用latin1编码)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。