MySQL(视图、触发器)

day61

参考:http://www.cnblogs.com/wupeiqi/articles/5713323.html

视图

视图:给某个查询语句设置别名,日后方便使用    
            
        - 创建
            create view 视图名称 as  SQLs语句
            
            PS: 视图是虚拟的   不存在insert
        - 修改
            alter view 视图名称 as  SQL语句
            
        - 删除
            drop view 视图名称;

触发器

当对某张表做:增删改操作时,可以使用触发器自定义关联行为

create trigger 触发器名称 before insert on tb1 for each row

begin

      .......

end

每在插入一行前,先执行begin~end中内容。

查询时用不到触发器

#遇到;不能完整执行需要将中止符修改
-- delimiter//
-- create trigger t1 before INSERT on student for each row
-- BEGIN
--     INSERT INTO teacher(tname) values('触发器');  #表示写完了
-- 
-- END//
-- delimiter;
-- 

insert into student(gender, class_id, sname) values("女",1,'触发');#插入两行则触发两次

执行触发器后,触发器一直存在。

触发器运行过之后,一直存在,不需要时,需要删除。

drop trigger t1;

插入学生的数据同样插入老师的表中 NEW

#插入学生的数据再插入老师的表中
-- delimiter//
-- create trigger t1 before INSERT on student for each row
-- BEGIN
--     INSERT INTO teacher(tname) values(NEW.sname);  #表示写完了
-- 
-- END//
-- delimiter;

insert into student(gender, class_id, sname) values("女",1,'啦啦');#插入两行则触发两次

先执行触发器,结束后注释(触发器已存在),再执行insert语句,数据插入student和teacher表中。

NEW,表示新数据,insert,   update(既有新数据,更新为的数据)

OLD,表示老数据,delete,   update(又有老数据,被更新数据)

猜你喜欢

转载自www.cnblogs.com/112358nizhipeng/p/9964576.html