加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MYSQL教程MySQL中VARCHAR与CHAR格式数据的区别

发布时间:2020-12-12 02:27:56 所属栏目:MySql教程 来源:网络整理
导读:《MYSQL教程MySQL中VARCHAR与CHAR格式数据的区别》要点: 本文介绍了MYSQL教程MySQL中VARCHAR与CHAR格式数据的区别,希望对您有用。如果有疑问,可以联系我们。 区别 MYSQL学习 CHAR与VARCHAR类型类似,但它们保留和检索的方式不同.CHAR有固定的长度,而VARCHA

《MYSQL教程MySQL中VARCHAR与CHAR格式数据的区别》要点:
本文介绍了MYSQL教程MySQL中VARCHAR与CHAR格式数据的区别,希望对您有用。如果有疑问,可以联系我们。

区别MYSQL学习

CHAR与VARCHAR类型类似,但它们保留和检索的方式不同.CHAR有固定的长度,而VARCHAR属于可变长的字符类型.它们最大长度和是否尾部空格被保留等方面也不同.在存储和检索过程中不进行大小写转换.MYSQL学习

下面的表格显示了将各种字符串值保留到CHAR(4)和VARCHAR(4)列后的结果,说明了CHAR和VARCHAR之间的差别:MYSQL学习

值?CHAR(4)?存储需求?VARCHAR(4)?存储需求
''?' '?4个字节?''?1个字节
'ab'?'ab '?4个字节?'ab'?3个字节
'abcd'?'abcd'?4个字节?'abcd'?5个字节
'abcdefgh'?'abcd'?4个字节?'abcd'?5个字节MYSQL学习

从上面可以看得出来CHAR的长度是固定的,不管你存储的数据是多少他都会都固定的长度.而VARCHAR则处可变长度但他要在总长度上加1字节,这个用来存储字符长度(如果声明的长度超过255,则使用2个字节).所以实际应用中用户可以根据本身的数据类型来做.MYSQL学习

请注意,上表中最后一行的值只适用不使用严格模式时;如果MySQL运行在严格模式,超过列长度的值不被保留,并且会出现错误.MYSQL学习

从CHAR(4)和VARCHAR(4)列检索的值并不总是相同,因为检索时从CHAR列删除了尾部的空格.通过下面的例子说明差别:MYSQL学习

mysql> CREATE TABLE test(a VARCHAR(4),b CHAR(4));
mysql> INSERT INTO test VALUES ('ab ','ab ');
mysql> SELECT CONCAT(a,'+'),CONCAT(b,'+') FROM test;

结果如下:MYSQL学习

CONCAT(a,'+') CONCAT(b,'+')
ab + ab+

从上面可以看出来,由于某种原因CHAR有固定长度,所以在处理速度上要比VARCHAR快很多,但是相对浪费存储空间,所以对存储不大,但在速度上有要求的可以使用CHAR类型,反之可以用VARCHAR类型来实现.MYSQL学习

建议MYSQL学习

MyISAM存储引擎 建议使用固定长度,数据列代替可变长度的数据列
INNODB 存储引擎 建议使用VARCHAR类型MYSQL学习

总结分析: MYSQL学习

笔墨字段若长度固定,如:身分证号码,就不要用 varchar 或 nvarchar,应该用 char 或 nchar.
支持多语言的站点应考虑使用 Unicode nchar 或 nvarchar 数据类型以尽量减少字符转换问题
笔墨字段若长度不固定,如:地址,则该用 varchar 或 nvarchar.除了可节省存储空间外,存取硬盘时也会较有效率MYSQL学习

《MYSQL教程MySQL中VARCHAR与CHAR格式数据的区别》是否对您有启发,欢迎查看更多与《MYSQL教程MySQL中VARCHAR与CHAR格式数据的区别》相关教程,学精学透。编程之家PHP学院为您提供精彩教程。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读