zoukankan      html  css  js  c++  java
  • 数据库

    存储引擎

      primary key也是innodb引擎查询必备的索引。

    Innodb

      目前5.1之后MySQL版本默认的存储引擎,支持事务,行锁,外键,因此数据更安全

    innodb在建表的时候会产生两个文件:一个是表结构文件,一个是存储数据文件

    myIsam

      5.1版本之前的MySQL的默认存储引擎,查询速度较于Innodb要快,安全性没innobd高。

      建表的时候会产生三个文件:一个是表结构文件,一个是存储数据文件,一个是索引文件。索引可以理解成是书的目录,能够帮助你更快的查询数据。

    memory

      建表的时候都仅仅只有一个表结构文件,数据是存放于内存中,当计算机重启之后,数据会消失。

    blackhole

      任何写入的数据都会消失,建表的时候都仅仅只有一个表结构文件

      研究一下每个存储引擎存取数据的特点:show engines;

    创建表的完整语法

      create table 表名(

        字段名1 字段类型[(宽度) 约束条件],

        字段名2 字段类型[(宽度) 约束条件],

        字段名3 字段类型[(宽度) 约束条件]  );

      注意:

        1).同一张表内字段名不能重复。

        2).字段名和字段类型都是必须的 中括号内的都是可选的。

        3).最后一个字段语句后不能有逗号。

    字段类型

    整型

      smallint   tinyint   int   bigint

      每种类型都有自己的字节大小,也就决定了有固定的存储长度,见下表:

      int(8):数字不够8位,默认用空格填充,够8位或者8位以上,有多少位显示多少位,但是也不能超出int最大范围

      char(8) :最大存储8个字符,超出会报错,不足默认用空格占位,主要用来现在存储数据的长度。(限制显示宽度)

      注意:只有整型比较特殊,括号内的数字不是用来限制存储宽度,而是用来在定义整型字段的时候不需要指定宽度,默认就是展示最大宽度

      zerofill  用0填充不足的位数

    浮点型

      float(255,30)      总共255位小数位占30位

      double(255,30)    总共255位小数位占30位

      decimal(65,30)    总共65位小数位占30位

      精确度为:float < double < decimal

    字符类型

      char(4) 定长:最大存储四个字符,超出报错,不足默认用空格占位。

        优缺点:

          优:存取速度快;取的时候方便,直接按固定的长度取即可

          缺:浪费硬盘空间

      varchar(4) 变长:最大存储四个字符,超出报错,不足有几个存几个 (django默认只有varchar类型)

        优缺点:

          优:节省硬盘空间  。

          缺:存取速度相对char慢  ;取的时候比较繁琐了 无法知道数据到底多长,

    模糊匹配

    like

      %匹配任意多个字符;_匹配任意一个字符

        set session 临时有效 只在你当前操作的窗口有效

        set global 全局有效 终生有效

        set global sql_mode = 'STRICT_TRANS_TABLES';设置完之后 你只需要重新退出客户端再次进入即可

    枚举与集合类型

      枚举(enum) 限制某个字段能够存储的数据内容

      集合(set) 限制某个字段能够存储的数据内容

    约束条件

      not null 不能为空

      default 给某个字段设置默认值(当用户写了的时候用用户的,当用户没有写就用默认值)

        例:create table t17(id int,name char(16) default 'jason');

      往表中插入数据的时,可以指定字段进行插入,不需要全部都插

        例:insert into t17(name,id) values('egon',2);

      unique 唯一

    primary key 主键

      限制效果跟 not null + unique 组合效果一致,非空且唯一。

      当你没有指定主键的时候

        1.会将非空切唯一的字段自动升级成主键

        2.当你的表中没有任何的约束条件,innodb会采用自己的内部默认的一个主键字段

          该主键字段你在查询时候是无法使用的,查询数据的速度就会很慢,类似于一页一页的翻书。

        3.主键字段应该具备自动递增的特点

          每次添加数据 不需要用户手动输入;auto_increment 自动递增

          delete from  仅仅是删除数据 不会重置主键

          truncate  初始化表 会重置主键

  • 相关阅读:
    cookie和session的区别
    PHP中require和include的区别
    设计模式之建造者模式
    设计模式之抽象工厂模式
    设计模式之工厂模式
    HTTPS为什么是安全的?
    设计模式之单例模式(Singleton Pattern)
    设计模式(Design Patterns)
    Linux命令:awk
    Nginx与PHP如何协同工作
  • 原文地址:https://www.cnblogs.com/blue-tea/p/11379476.html
Copyright © 2011-2022 走看看