快速了解MySQL中的字符串数据类型

数据类型

字符串类型:

字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。该节描述了这些类型如何工作以及如何在查询中使用这些类型。

CHAR 、 VARCHAR

  • char是长度固定的,不变的,长度在0-255字节 ;而varchar是长度可变的,长度在0-65535。
    同时,char后面的空格不会保留,而varchar会保留。还需注意的是oracle中的两个字节表示一个汉字,mysql中只需一个。
char定长:磁盘空间比较浪费,但是效率高,确定数据长度都一样,就使用定长
比如:生日时间、身份证号
varchar变长:比较节省空间,但是效率低,数据不能确定长度(不同数据长度有变化),不过例如varchar(5)所占的字节数是实际长度的基础上加1,后面还有结束标识符
比如:地址
 

BINARY、VARBINARY

  • 两者的关系和上面char和varchar很像,只不过它们是存储二进制字符串,包含字节字符串。

BLOB

  • BLOB 是一个二进制大对象,可以容纳可变数量的数据,分为TINYBLOB(0-255)、BLOB(0-65535)、MEDIUMBLOB 和 LONGBLOB。
  • MySQL的四种BLOB类型(除了在存储的最大信息量上不同外,他们是等同的。
  • 但是有时存储的文件过大,数据库性能就会下降。

TEXT

  • 存储文字,大的一些文本等,也是四种类型,大小关系和上面的一样

    u3YyUOK2WrFpbz7.png

    • 上图的就可以看出分类,不过这个数据类型不怎么使用。

ENUM和SET

  • ENUM看名字就知道了,这是一种枚举类型的数据类型,事先将可能出现的结果都定义好,实际存储的数据必须是枚举中的一个,不能随意存储。

    格式:字段名 enum('值1','值2',...,'值n') NULL/NOT NULL
    列表中的每个值都有一个顺序排列的编号,MySQL中存入的是这个编号,就是可以对应其位置来取到相应的值,同时如果存储不是枚举的值,如果类型后面加上了null属性,其默认值为取值列表中的第一个元素。如果不加not null属性,enum类型将允许插入null,而且null为默认值.
  • SET支持去重,可以存储多个元素,如果要选取列表中多个值的组合,就要选择set类型

    格式:字段名 set('值1','值2',...,'值n') NULL/NOT NULL
    这里的同enum类型一样,列表中的每个值都有一个顺序排列的编号
    
  • 记住这两种类型的数据都不是直接将数据存入数据库,而是将其列表中的编号存入数据库。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值