目录
4.1 假设有一条非常复杂的SQL语句,而这条SQL语句需要在不同的位置上反复使用。每一次使用这个sql语句的时候都需要重新编写,很长,很麻烦,怎么办?
create table dept2 as select * from dept;
select * from dept2;
create view dept2_view as select * from dept2;
drop view dept2_view;
注意:只有DQL语句才能以view的形式创建。
create view view_name as 这里的语句必须是DQL语句;
我们可以面向视图对象进行增删改查,对视图对象的增删改查,会导致原表被操作!(视图的特点:通过对视图的操作,会影响到原表数据。)
create view dept2_view as select * from dept2;
创建视图
select * from dept2_view;
insert into dept2_view(deptno,dname,loc) values(60,'SALES', 'BEIJING');
select * from dept2;
delete from dept2_view;
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';
select * from emp_dept_view;
select * from emp;
原表数据被修改
我们以后面向视图开发的时候,使用视图的时候可以像使用table一样。可以对视图进行增删改查等操作。视图不是存储在内存当中,视图对象也是存储在硬盘上的,不会消失。
创建视图对象对应的语句只能是DQL语句。但是在视图对象创建完成之后,可以对视图进行增删改查等操作。