zoukankan      html  css  js  c++  java
  • 数据库的数据类型

    数据存储引擎

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

      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")

  • 相关阅读:
    Java基础——消息队列
    Java基础——缓存
    Java基础——动态代理
    Java基础——克隆
    Java基础——锁
    Java基础——线程池
    Java基础——线程
    Java基础——HashMap
    Java基础——String
    SpringMVC的学习____5.乱码问题的解决_两种方法(两个类)
  • 原文地址:https://www.cnblogs.com/jianhaozhou/p/9636080.html
Copyright © 2011-2022 走看看