zoukankan      html  css  js  c++  java
  • MYSQL基础笔记(七)- 数据类型二

      字符串类型

      在SQL中,讲字符串类型分成了六类:char,varchar,text,blob,enum,set

      char,定长字符串

      磁盘(二维表)在定义结构的时候,就已经确定了最终数据的存储长度。

      char(L):L代表length,可以存储长度,单位为字符。最大长度值为255.

      varchar变长字符串

      在分配空间的时候,按照最大的空间分配,但是实际上最终用了多少空间,是根据具体的数据来确定的。

      varchar(L):L表示字符长度,理论长度是65536个字符,但是会多出1到2个字节来确定存储的实际长度。

      例如,varchar(10):存了10个汉字,utf8环境下,10*3+1=31个字节。

                存储3个汉字,3*3+1 = 10(bytes)

      如何选择定长或则是变长字符串呢?

      第一,定长的磁盘空间比较浪费,但是效率高。如果数据基本上确定长度都一样,就是用定长。

      第二,变长比较节约磁盘空间,但是效率低。如果数据不能确定长度,可以采用。

      text,文本字符串

      如果数据量非常大,通常说超过255个字符,就使用文本字符串。

      文本字符串根据存储的数据的格式进行分类:text OR blob.

      Text:存储文字(二进制数据根据实际都是存储路径)

      Blob:存储二进制数据(通常不用)。

      enum,枚举字符串

      事先将所有可能出现的结果都设计好,实际上存储的数据必须是规定好的数据中的一个。

      枚举的使用方式:

      定义:enum(可能出现的元素列表);  -- 如 enum('男','女','妖','保密');

      使用:存储数据,只能存储上面定义好的数据。

      作用:1、规范数据格式,数据只能是规定的数据中的其中一个。枚举实际存储的是数值二不是字符串本身。

         2、节省存储空间(枚举通常有一个别名:单选框)

      在MYSQL中,系统是自动转换数据格式的,而且基本与PHP一样。

      枚举的原理:枚举在进行数据规范的时候(定义数据的时候),系统会自动建立一个数据与枚举元素的对应关系(关系放到日志中),然后在进行数据插入的时候,系统自动将字符转换成对应的数字存储,分然后进行数据提取的时候,系统自动将数值转换成对应的字符串显示。

      集合字符串

      集合和枚举类似:实际存储的是数值,而不是字符串(集合是多选)。

      定义:Set (元素列表)

      使用:可以使用元素列表中的元素(多个),使用逗号分隔。

      集合中没有一个元素。

      集合的强大在于能够规划数据和节省空间,php也可以规范数据,但对于PHP来说效率优先,而且数据的维护可以通过数字进行。PHP没有办法判断数据的在数据库的形式,集合增加PHP的维护成。

      

      MYSQL记录长度

      MYSQL中规定,任何一条记录最长不能超过65535个字节。

      MYSQL记录中:如果有任何一个字段允许为空,那么系统会自动从整个记录中保留一个字节来存储NULL。

      列属性 

      列属性: 真正约束字段的是数据类型,但是数据类型的约束很单一,需要有一些额外的约束,来保证数据的合法性。

      列属性有很多: NULL/NOT NULL , DEFAULT,PRIMARY KEY,UNIQUE KEY,AUTO_INCREMENT,COMMENT.

      空属性:两个值,NULL(空,默认值)和NOT NULL(不为空)

      列描述: comment,描述,没有实际含义,是专门用来描述字段。

      DEFAULT:默认值关键词。

  • 相关阅读:
    启动docker
    hadoop hdfs文件操作
    html_day02
    启动hadoop和关闭hadoop
    ubuntu 启动idea
    html_day01_practice
    day01
    构造函数后加冒号及调用顺序
    三大范式
    mysql解决迁移复制数据库报错 Key或column 过长
  • 原文地址:https://www.cnblogs.com/xz1024/p/5697594.html
Copyright © 2011-2022 走看看