一, 视图
定义: 视图类似一张虚拟的表, 有行和列, 但是视图中存储的是查询语句, 且视图中的数据依赖于原表数据.
特点:
简单: 将一些复杂的关系查询语句存入视图中, 下次使用时不需要再次编写 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 触发器名字
来源: http://www.bubuko.com/infodetail-3557752.html