第07章02节-视图

视图


MySQL视图是一种虚拟表,它的内容是基于SQL查询的结果集。视图本身不存储数据,只保存了查询定义,数据仍然存储在底层的表中。使用视图可以简化复杂的查询,提高代码的可读性和可维护性,同时增强数据的安全性和一致性。

  1. 只能将select语句创建为视图。
  2. 创建视图
1
create or replace view v_emp as select e.ename,d.dname from emp e join dept d on e.deptno = d.deptno;
  1. 视图作用
    1. 如果开发中有一条非常复杂的SQL,而这个SQL在多处使用,会给开发和维护带来成本。使用视图可以降低开发和维护的成本。
    2. 视图可以隐藏表的字段名。
  2. 修改视图
1
alter view v_emp as select e.ename,d.dname,d.deptno from emp e join dept d on e.deptno = d.deptno;
  1. 删除视图

    1. drop view if exists v_emp;
  2. 对视图增删改(DML:insert delete update)可以影响到原表数据。

  3. 注意事项

    • 视图不能索引,也不能包含 ORDER BY 子句,除非结合 LIMIT 子句。
    • 视图的性能取决于底层表的查询性能,对于大数据量的复杂视图查询,可能需要优化底层表和索引。