17、视图

视图

视图是一种根据查询(也就是select语句)定义的数据库对象,用于获取想要看到和使用的局部数据
视图有时也被称为“虚拟表”

视图的作用

  • 方便重用SQL语句
  • 保护数据,隐藏表的实现细节
  • 对不同用户显示不同的内容

一般,应该将视图用于select语句,而不用于DML

1、视图操作

#创建视图
create view v_dept_emp as select e.*,d.dname,d.loc from emp e join dept d on e.deptno=d.deptno and e.deptno=20;
#修改视图
alter view v_dept_emp as select e.*,d.dname,d.loc from emp e join dept d on e.deptno=d.deptno and e.deptno=10;
#删除视图
drop view if exists v_dept_emp;

2、简化复杂连结

#创建三张表连结的一个视图,可重用性高的视图
create view v_emp_dept_grade as 
select e.*,d.dname,d.loc,s.grade 
from emp e join dept d on e.deptno=d.deptno
join salgrade s on e.sal between losal and hisal; 
#查出编号是7369的员工的所有信息,包括部门名,工资等级
select * from v_emp_dept_grade where empno=7369;

3、重新格式化检索数据

#将部门与驻地连接起来
create view department as select concat(dname,'--',loc) as depart from v_emp_dept_grade;
select * from department;

4、过滤不想要的数据

#过滤出津贴不为空的记录
create view v_comm as select * from emp where comm is not null;
select * from v_comm;

5、复用计算字段

#计算出年薪,并形成一张可复用的视图
create view v_sal as select ename,sal,comm,(sal+ifnull(comm,0))*12 as yearsal from emp;
select * from v_sal where ename='simith';
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容