Oracle视图(和Mysq一样l)
副问题[/!--empirenews.page--]
本章内容: Oracle视图先容与建设、Oracle视图的查询与修改、Oracle的伟大视图 1. Oracle视图先容与建设 (1)相识常见的数据库工具都有哪些 ? ? ? ??? (2)相识什么是视图以及为什么要行使视图 ??????? 观念:视图是一个假造表,视图傍边的数据是来自于基表的 ??????? 为什么要用视图? ??????????? <1>安详缘故起因:限定数据的会见(如:社会保险基金表,可以行使视图只表现姓名和地点,而不表现社会的保险号和人为) ??????????? <2>视图可使伟大的查询用于领略和行使 ? ??? (3)领略视图的分类 ??????? ? 简朴视图、伟大视图、毗连视图、只读视图 ??????? ? 简朴视图:基于单个表成立、不包罗函数表达式以及分组数据 伟大视图:包罗函数表达式以及分组数据的一个视图,目标:为了简化查询操纵 毗连视图:为了简化毗连查询 只读视图:只应承行使select语句,只能看 ??? (4)把握视图的建设 ??????? 先登录system用户授予建设视图权限给scott用户 ? ? ? ? ? ??? ??建设简朴视图? create view emp_view as select empno,ename,sal from emp; select * from emp_view ? ? ? 建设毗连视图 create view demp_view as select d.deptno,d.dname,e.empno,e.ename,e.job from dept d inner join emp e on e.deptno=d.deptno and d.deptno=10; 接下来查询视图即可,不必要编写多表毗连查询语句,很利便 select * from demp_view; ? ? 建设只读视图 create view emp_view3 as select empno,sal from emp with read only; select * from emp_view3 ? ? 由于是只读视图,试着修改一下 update emp_view3 set sal=sal+50; 报错:无法对只读视图做DML操纵 ? ? 2.Oracle视图的查询与修改 方针:把握视图上的DML操纵、领略视图上界说的check束缚的浸染、把握视图的修改与删除
create view empnew_view as select empno,sal from empnew; select * from empnew_view; //查询视图 insert into empnew_view(eid,salary) values(99,‘qi1qi‘,66) update emp set ename="qiqi1" where eid=88 delete from emp where eid=88 ? ??? (2)建设视图时界说check束缚 ??? create view empnew_view2 as select * from empnew where deptno=20 with check option constraint ck_view; 这时辰往视图中添加数据 insert into empnew_view2(empno,sal) values(22,‘qiqi‘,333); 会报错:ORA-01402: view WITH CHECK OPTION where-clause violation??? //视图WITH CHECK OPTION where句子违规 ??? ?这时辰添加可能修改数据的时辰应该满意建设视图中的束缚前提才气添加 ??? ?在这里指定部分编号为20即可以添加 insert into empnew_view2(empno,sal,deptno) values(22,333,20) ; ?
修改视图:通过下面修改再查询,很明明之前的视图已经被修改 create or replace view empnew_view as select * from emp where job=‘SALESMAN‘; select * from empnew_view; ? (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |