第07章02节-视图
第07章02节-视图
CAMELLIA视图
MySQL视图是一种虚拟表,它的内容是基于SQL查询的结果集。视图本身不存储数据,只保存了查询定义,数据仍然存储在底层的表中。使用视图可以简化复杂的查询,提高代码的可读性和可维护性,同时增强数据的安全性和一致性。
- 只能将select语句创建为视图。
- 创建视图
1 | create or replace view v_emp as select e.ename,d.dname from emp e join dept d on e.deptno = d.deptno; |
- 视图作用
- 如果开发中有一条非常复杂的SQL,而这个SQL在多处使用,会给开发和维护带来成本。使用视图可以降低开发和维护的成本。
- 视图可以隐藏表的字段名。
- 修改视图
1 | alter view v_emp as select e.ename,d.dname,d.deptno from emp e join dept d on e.deptno = d.deptno; |
删除视图
- drop view if exists v_emp;
对视图增删改(DML:insert delete update)可以影响到原表数据。
注意事项
- 视图不能索引,也不能包含
ORDER BY
子句,除非结合LIMIT
子句。 - 视图的性能取决于底层表的查询性能,对于大数据量的复杂视图查询,可能需要优化底层表和索引。
- 视图不能索引,也不能包含