视图:
需求: 创建的临时表(select * from tb1)被反复使用,这时可以为该临时表创建视图。视图相当于为某个查询创建了别名。
1、创建视图
create view v1 as select * from tb1; create view 视图名 as sql语句;
2、删除视图
drop view v1; drop view 视图名;
3、修改视图(alter)
alter view v1 as select * from tb2; alter view 视图名 as sql语句;
注意:视图和原表的关系,原表改变,视图也会跟着改变;原表是物理实际存在的,视图是虚拟的;
视图不推荐使用,一般直接在python代码中写子查询;
触发器:
在执行某一操作(增删改)之前或者之后额外再执行的操作
1、创建触发器
在之前执行:
delimiter $$ create trigger t1 before insert on tb1 for each row begin insert into tb2(number) values(111); end $$ delimiter ;
delimiter $$ 创建结束符 create trigger t1 before insert on tb1 for each row 创建触发器 begin 开始标志 insert into tb2(number) values(111); 触发器执行内容 end $$ 结束标志 delimiter ; 修改结束符
在之后执行:
delimiter $$ create trigger t1 after insert on tb1 for each row begin insert into tb2(number) values(111); end $$ delimiter ;
触发器还有:insert,delete,update,......
NEW 新数据:insert,update时有;NEW.....可以点出具体想要的数据
OLD老数据:delete,update时有
2、删除触发器
drop trigger t1
触发器也不常用
3、函数
(1)自定义函数
delimiter $$ create function func1(n1 int,n2 int) --创建函数 returns int begin declare num int; --声明变量 set num = n1 + n2; retutn (num) end $$ delimiter ;