oracle数据库---视图

给scott用户创建视图的权限
[oracle@localhost ~]$ sqlplus / as sysdba
SQL> grant create view to c##scott;
然后连接scott用户创建视图
SQL> conn c##scott /oracle
SQL>create view myview as select d.deptno,d.dname,d.loc,count(e.empno) count,nvl(avg(e.sal),0) avg
2 from emp e,dept d
3 where e.deptno(+)=d.deptno
4 group by d.deptno,d.dname,d.loc;
在超文本传输协议http+ssl认证---超文本传输安全协议--应用层与传输层之间加Ssl建立在tcp之上,三个特点:
且视图不能重名,若在创建一张名为myview的视图就会出现报错
需要删除之前与之重名的视图

如果视图存在则替换,如果不存在则创建
替换:
SQL> create or replace view myview as select * from emp where deptno=10;
在超文本传输协议http+ssl认证---超文本传输安全协议--应用层与传输层之间加Ssl建立在tcp之上,三个特点:
重新创建:
SQL> create or replace view mypp as select * from emp where deptno=10;
在超文本传输协议http+ssl认证---超文本传输安全协议--应用层与传输层之间加Ssl建立在tcp之上,三个特点:

创建视图的两个选项

选项一:WITH CHECK OPTION 表示不可以更新视图的创建条件
例如myview视图的创建条件为deptno=10;
对创建条件进行更新:
SQL> update myview set deptno=20 where empno=7782;
可见更新后该用户信息不见
在超文本传输协议http+ssl认证---超文本传输安全协议--应用层与传输层之间加Ssl建立在tcp之上,三个特点:
此时emp表中部门编号原本为10的7782号员工的相关数据也发生了变化
在超文本传输协议http+ssl认证---超文本传输安全协议--应用层与传输层之间加Ssl建立在tcp之上,三个特点:
滚回数据:
在超文本传输协议http+ssl认证---超文本传输安全协议--应用层与传输层之间加Ssl建立在tcp之上,三个特点:
覆盖myview视图,添加条件使他不能更改创建条件:
SQL> create or replace view myview as
2 select * from emp where deptno=10 with check option;
在超文本传输协议http+ssl认证---超文本传输安全协议--应用层与传输层之间加Ssl建立在tcp之上,三个特点:
再次尝试更改创建条件:
在超文本传输协议http+ssl认证---超文本传输安全协议--应用层与传输层之间加Ssl建立在tcp之上,三个特点:
提示报错不能修改视图创建条件。
选项二:WITH READ ONLY
以上选项一使创建条件不能被更新,但是其他字段依然可以更新
SQL> update myview set sal=9999 where empno=7782
在超文本传输协议http+ssl认证---超文本传输安全协议--应用层与传输层之间加Ssl建立在tcp之上,三个特点:
所以将其修改为只读模式,则其他字段也不能修改
SQL> create or replace view myview as
2 select * from emp where deptno=10
3 with read only;
此时再次修改时会提示该视图为只读视图,无法进行更新
在超文本传输协议http+ssl认证---超文本传输安全协议--应用层与传输层之间加Ssl建立在tcp之上,三个特点:
创建一个查询语句为统计操作的视图
SQL> create or replace view myview as
2 select d.dname,d.deptno,d.loc,count(e.ename) count,avg(e.sal) avg
3 from emp e,dept d
4 where e.deptno(+)=d.deptno
5 group by d.deptno,d.dname,d.loc;
在超文本传输协议http+ssl认证---超文本传输安全协议--应用层与传输层之间加Ssl建立在tcp之上,三个特点:
对其中的数据进行更新,会发现无法更新,因为此视图中的数据是根据统计得来
在超文本传输协议http+ssl认证---超文本传输安全协议--应用层与传输层之间加Ssl建立在tcp之上,三个特点:
删除视图:
SQL> drop view myview;View dropped.

发布了31 篇原创文章 · 获赞 19 · 访问量 1449

猜你喜欢

转载自blog.csdn.net/Alkaid__3/article/details/104314825