数据库的数据类型

数据存储引擎

  涉及到数据存储的代码,我们称之为数据引擎

  mysql中支持多种数据引擎

    查看mysql中所有支持的数据引擎的语法是

      show engines;

  在mysql中默认的搜索引擎为InnoDB

创建表的完整语句

  create table 表名(字段名 数据类型[(长度) 约束条件])

    其中[]中的可以不填写,不填写时表示使用有默认值.

  提示:其中的长度表示的是显示的长度,如果超过该长度,就会丢弃超过的部分

数据类型

  整型

    数据类型  tinyint  smallint  mediumint  int  bigint

       字节数    1    2      3     4   8

  1 默认情况下整型有符号,需一个二进制来存符号

  2 给整型加上约束条件 unsigned 来表示无符号

  3 如果数据超过范围,超出部分就会丢弃

  

  以上特征的出现是因为mysql处于非严格模式

    查看当前的模式  show variables like "sql_mode";

    修改为默认模式  set global sql_mode = "STRICT_TRANS_TABLES";

  长度限制对于整型的意义:

    1 长度限制的是显示的宽度

    2 如果你的数据超过了显示的宽度,就会舍弃掉超出的部分

    3 若不足mysql会自动的用空格补全也可以用0补全语法为:

      create table 表名(id int(5) zerofill);

浮点型

  数据类型  float  double  decimal  

  字节数    4    8    手动指定

    相同点:小数部分最大长度都是30,float和double整体最大长度255

    不同点:decimal的整体最大长度是65,float和double都是不准确的,而decimal是准确的

  给浮点型设置宽度:

    例如:

      float(m,n)

      m表示的是整体的长度

      n表示的是小数部分的长度

字符型

  char  定长字符

  varchar   变长字符

  char       无论你存储的数据有多长,占用的容量都一样

  varchar  存储的数据有多长就占用多长

        由于是可变的,存入硬盘中,无法知道数据的开头和结尾,所以会在数据的头加一位置用于存储数据的长度信息

       能支持的最大长度是65535,用于数据长度信息的数据为最大占2个字节

  char和varchar的优缺点:

    char:

      存取效率高

      浪费空间

    varchar:

      存取效率低

      节省空间

  

  模糊查询:

    select * from 表名 where 字段like "张%"

      %任意个数的任意字符

      _1个任意字符

大文本类型

  TEXT系列 TINYTEXT TEXT MEDIUMTEXT LONGTEXT 文本是带有编码

    BLOB 系列 TINYBLOB BLOB MEDIUMBLOB LONGBLOB 也是字符数据 但是不带编码

    二进制类型: 用于存储多媒体数据 比如视频 但是我们一般不会将多媒体数据存到数据 而是存储文件路径地址

     BINARY系列 BINARY VARBINARY 存储二进制数据

时间:

  time  时分秒  HH:MM:SS

    year  年份      

    date  年月日  Y-M-D  是字符串形式

    datetime 日期加时间    年份最大是9999

    timestamp 时间戳     年份最大是2037   当插入为null时,会自动插入当前的时间,当更新数据时,会自动的更新当前的时间

    datetime和timestamp都可以用now()来获取当前的时间

枚举

  用于描述一个已知范围的数据 例如性别等

     enum("man","woman","other")

  1 枚举中的值只能是字符串

  2 添加的数据只能是已经出现在枚举中的值

  3 你也可以使用枚举值的序号来插入值

集合

  用于描述一堆数据 比如你的兴趣爱好

  set("watch movie","listen music","play")

原文地址:https://www.cnblogs.com/jianhaozhou/p/9636080.html