zoukankan      html  css  js  c++  java
  • Python开发【第十八篇】:MySQL(二)

    视图

    视图是一个虚拟表(非真实存在),其本质是【根据SQL语句获取动态的数据集,并为其命名】,用户使用时只需使用【名称】即可获取结果集,并可以将其当作表来使用。

     临时表搜索

    1、创建视图

     View Code

    2、删除视图

     View Code

    3、修改视图

     View Code

    4、使用视图

    使用视图时,将其当作表进行操作即可,由于视图是虚拟表,所以无法使用其对真实表进行创建、更新和删除操作,仅能做查询用。

     View Code

    触发器

    对某个表进行【增/删/改】操作的前后如果希望触发某个特定的行为时,可以使用触发器,触发器用于定制用户对表的行进行【增/删/改】前后的行为。

    1、创建基本语法

     View Code
     插入前触发器
     插入后触发器

    特别的:NEW表示即将插入的数据行,OLD表示即将删除的数据行。

    2、删除触发器

     View Code

    3、使用触发器

    触发器无法由用户直接调用,而知由于对表的【增/删/改】操作被动引发的。

     View Code

    存储过程

    存储过程是一个SQL语句集合,当主动去调用存储过程时,其中内部的SQL语句会按照逻辑执行。

    1、创建存储过程

     无参数存储过程

    对于存储过程,可以接收参数,其参数有三类:

    • in          仅用于传入参数用
    • out        仅用于返回值用
    • inout     既可以传入又可以当作返回值
     有参数的存储过程
     1. 结果集
     2. 结果集+out值
     3. 事务
     4. 游标
     5. 动态执行SQL

    2、删除存储过程

     View Code

    3、执行存储过程

     执行存储过程
     pymysql执行存储过程

    函数

    MySQL中提供了许多内置函数,例如:

     部分内置函数

    更多函数:中文猛击这里 OR 官方猛击这里

    1、自定义函数

     View Code

    2、删除函数

     View Code

    3、执行函数

     View Code

    事务

    事务用于将某些操作的多个SQL作为原子性操作,一旦有某一个出现错误,即可回滚到原来的状态,从而保证数据库数据完整性。

     支持事务的存储过程
    1
    2
    3
    set @i =0;
    call p1(@i);
    select @i;

    索引

    索引,是数据库中专门用于帮助用户快速查询数据的一种数据结构。类似于字典中的目录,查找字典内容时可以根据目录查找到数据的存放位置,然后直接获取即可。

    1
    2
    3
    4
    5
    6
    7
                        30
     
            10                        40
     
       5         15            35             66
     
    1   6     11    19      21      39     55     100

      

    MySQL中常见索引有:

    • 普通索引
    • 唯一索引
    • 主键索引
    • 组合索引

    1、普通索引

    普通索引仅有一个功能:加速查询

     创建表 + 索引
     创建索引
     删除索引
     查看索引

    注意:对于创建索引时如果是BLOB 和 TEXT 类型,必须指定length。

     View Code

    2、唯一索引

    唯一索引有两个功能:加速查询 和 唯一约束(可含null)

     创建表 + 唯一索引
     创建唯一索引
     删除唯一索引

    3、主键索引

    主键有两个功能:加速查询 和 唯一约束(不可含null)

     创建表 + 创建主键
     创建主键
     删除主键

    4、组合索引

    组合索引是将n个列组合成一个索引

    其应用场景为:频繁的同时使用n列来进行查询,如:where n1 = 'alex' and n2 = 666。

     创建表
     创建组合索引

    如上创建组合索引之后,查询:

    • name and email  -- 使用索引
    • name                 -- 使用索引
    • email                 -- 不使用索引

    注意:对于同时搜索n个条件时,组合索引的性能好于多个单一索引合并。

    其他 

    1、条件语句

     if条件语句

    2、循环语句

     while循环
     repeat循环
     loop

    3、动态执行SQL语句

     动态执行SQL
  • 相关阅读:
    Blocks to Cubes
    poj1113凸包
    AtCoder Regular Contest 078D
    Codeforces Round #400
    hdu2196树形dp
    Codeforces Round #409
    Codeforces Round #424
    hdu1520树形dp第一题
    Codeforces Round #412
    poj2823单调队列
  • 原文地址:https://www.cnblogs.com/xwqhl/p/10691194.html
Copyright © 2011-2022 走看看