MySQL 里 视图,触发器,事物,存储过程,内置函数,流程控制,索引

1、视图:
    定义:通过查询一张虚拟表,然后保存下来,下次直接使用即可,可以不需要重复查询。

    使用:
     create view teacher_course as select * from teacher inner join course on teacher.tid = course.teacher_id;

    强调:
        1、在硬盘中,视图只有表结构文件,没有表数据文件
        2、视图通常用于查询,可以通过修改视图里的数据进而影响到原始表里的数据,因此尽量不要修改视图中的数据
        3、在实际开发 过程中不会过多的使用视图,视图是mysql的功能。当需要扩展某个功能时同时需要对视图进行修改,
        此时先要将视图修改,然后再去程序里修改对应的sql语句,这些操作会涉及跨部门沟通,因此通常不会使用视图,而是
        重新修改sql语句来扩展功能

  

2、触发器

    定义:在满足对某张表数据的增、删、改的情况下,自动触发的功能称之为触发器

    触发条件:在对表进行增insert,删delete,改update的情况下,自动触发执行sql语句

标准语句结构:
    create trigger 触发器名字 after insert on 表名 for each row
    begin
        sql语句
    end
修改之前
     create trigger tri_before_update_t1 before update on t1 for each row
    begin
        sql语句
    end


    修改之后
     create trigger tri_after_update_t1 after update on t1 for each row
    begin
        sql语句
    end
修改
 删除之前
     create trigger tri_before_delete_t1 before delete on t1 for each row
    begin
        sql语句
    end
    
    删除之后
     create trigger tri_after_delete_t1 after delete on t1 for each row
    begin
        sql语句
    end
删除
 增加数据之后
    create trigger tri_after_insert_t1 after insert on t1 for each row
    begin
        sql语句
    end
    
    增加数据之前
    create trigger tri_before_insert_t1 before insert on t1 for each row
    begin
        sql语句
    end
增加
CREATE TABLE cmd (
    id INT PRIMARY KEY auto_increment,
    USER CHAR (32),
    priv CHAR (10),
    cmd CHAR (64),
    sub_time datetime, #提交时间
    success enum ('yes', 'no') #0代表执行失败
    );

    CREATE TABLE errlog (
        id INT PRIMARY KEY auto_increment,
        err_cmd CHAR (64),
        err_time datetime
    );


    delimiter $$  # 将mysql默认的结束符由;改成$$
    create trigger tri_after_insert_cmd after insert on cmd for each row
    begin
        if NEW.success = 'no' then
            insert into errlog(err_cmd,err_time) values(NEW.cmd,NEW.sub_time);
        end if;
    end $$
    delimiter ;
结合mysql的案例

 

事务 待续

 

posted on 2019-05-17 21:13  michael-chang  阅读(136)  评论(0编辑  收藏  举报

导航