• 快速了解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

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

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

    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类型一样,列表中的每个值都有一个顺序排列的编号
      
      
    • 记住这两种类型的数据都不是直接将数据存入数据库,而是将其列表中的编号存入数据库。

  • 相关阅读:
    python函数第4天(day 23)
    python函数第3天(day 22)
    python函数第2天(day 21)
    python函数第一天(day 20)
    opencv笔记一(Mat初始化及Mat传递)
    ubuntu上opencv源码安装
    ubuntu上显卡驱动安装——GeForce GTX 1080 Ti
    ubuntu上CUDA9.0和CUDNN7.0安装
    vscode配置opencv c++开发环境
    opencv中Mat的属性
  • 原文地址:https://www.cnblogs.com/yhycoder/p/12504527.html
Copyright © 2020-2023  润新知