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

  • 相关阅读:
    【转】PHP使用共享内存进程间通信
    【转】php进程间通信--有名管道
    【转】代理模式-php白话示例
    [转]设计的核心任务之三:确保正交性
    pc主板支持独显和集显视频输出
    OpenGL核心技术之抗锯齿
    读书:有钱人想的和你不一样
    js 文本相似度
    js实现获得QQ截图或者微信截图后剪切板的内容clipboardData
    【转】chrome浏览器F12 Network中Timing参数含义
  • 原文地址:https://www.cnblogs.com/yhycoder/p/12504527.html
Copyright © 2011-2022 走看看