一、视图
定义:视图类似一张虚拟的表,有行和列,但是视图中存储的是查询语句,且视图中的数据依赖于原表数据。
特点:
简单:将一些复杂的关系查询语句存入视图中,下次使用时不需要再次编写SQL语句,直接调用视图就可以了,可以重复的使用一个特定的查询语句。
安全:Mysql数据库没有提供对于字段的权限,我们可以通过视图来去做字段的权限。
数据独立:一旦视图创建成功,就算原表的结构发生变化,也不会对视图的结构产生影响。
创建视图
CREATE VIEW 视图名 AS(查询语句);
查看视图
SHOW TABLE STATUS WHERE COMMENT=’view’;
使用视图
SELECT * FROM 视图名;
删除视图
DROP VIEW 视图名;
视图的特性:视图中存的是查询语句,就算你的视图中存的是简单查询,在通过视图去查询数据时会自动变成复杂查询。
视图的缺点:占用更多资源,后期会增加维护成本。
二、触发器
在MySQL数据库中可以通过创建触发器,以使在表里执行特定指令时自动向某张表里执行特定的操作。
例如给user表创建一个触发器,当向user表中添加数据时 给userinor也添加一条数据,或是当我们删除user表中的数据时 将删除的数据备份的 back_user表中。
语法:
CREATE TRIGGER
触发器名字 触发时机 触发事件
ON 表名
FOR EACH ROW
BEGIN
触发器要执行的sql语句
EDN;
创建触发器时需要修改数据的默认结束符,使用\d||命令。
创建完触发器时必须把结束符更改回来。
查看触发器
Select * from information_schema.trigger;
删除触发器
Drop trigger 触发器名字