2、视图
2.1、视图(view):
view:站在不同的角度去看同一份数据
2.2、创建和删除视图对象?
表复制: create table dept2 as select * from dept;
创建视图对象:create view dept2_view as select * from dept2;
删除视图对象:drop view dept2_view;
注意:只有DQL豫剧才能以view的形式创建
create vie view_name as 这里的语句必须是DQL语句;
2.3、视图的用途
我们可以面向视图对象进行增删改查,对视图对象的增删改查,会导致原表数据被操作
//面向视图查询
select * from dept2_view;
//面向视图插入
insert into dept2_view(deptno,dname,loc) values(60,'SALES','BEIJING');
//查询原表数据
select * from dept2;
//面向视图删除
delete from dept2_view;
//查询原表数据
select * from dept2;
案例:
//面向视图对象
create view emp_dept_view
as
select e.ename,e.sal,d.dname from emp e join dept d on e.deptno = d.deptno;
//查询视图对象
select * from emp_dept_view;
//面向视图更新
update emp_dept_view set sal = 1000 where dname = 'ACCOUNTING';
//原表数据被更改
2.4、视图对象在实际开发作用
假设有一条非常复杂的SQL语句,而这条SQL语句需要在不同的位置上反复使用
每一次使用这个SQL语句的时候都需要重新编写,很长,
可以把这条负责的SQL语句以视图对象的形式新建。
在需要编写这条SQL语句的位置直接使用视图对象,可以大大简化开发。
并且有利于后期的维护,因为修改的时候也只需要修改一个位置就行,只需要修改视图对象所映射的SQL语句
面向视图开发的时候,使用视图的时候可以像使用table一样,可以对视图进行增删改查等操作。视图不是在内存中,视图对象也是存储在硬盘上,不会消失
注意:视图对应的语句只能是DQL语句
但视图对象创建完成后,可以进行增删改查等操作(CRUD)