设为首页 收藏本站
查看: 1292|回复: 0

[经验分享] [每日一题] OCP1z0-047 :2013-08-12 view视图的描述哪些是正确的?..............................

[复制链接]

尚未签到

发表于 2015-11-9 11:07:40 | 显示全部楼层 |阅读模式
  l转载请注明出处:http://blog.iyunv.com/guoyjoe/article/details/9937691

DSC0000.jpg
  

  
正确答案是: CE



这是OCP教材中的:

  1、简单视图与复杂视图的定义:

DSC0001.jpg


  2、复杂视图通常不能被DML:

    DSC0002.jpg



3WITH CHECKOP TIONT选项


DSC0003.jpg



A不正确。简单视图可以被更新。


hr@OCM> CREATE VIEW     empvu30
2  AS SELECT  employee_id, last_name, salary
3   FROM    employees
4  WHERE   department_id = 30;
View created.
hr@OCM> update empvu30 set salary=salary+100;
7 rows updated.
hr@OCM> commit;
Commit complete.

  
B:错误。复杂视图中定义的的子查询可以包含group by或join,大部分复杂视图都是不能更新的。


hr@OCM>  CREATE OR REPLACE VIEW    v_emp_depart
2    AS SELECT  department_id,count(*) count
3    FROM    employees
4    GROUP BY department_id;

View created.

hr@OCM> update v_emp_depart set count=8 where department_id=60;
update v_emp_depart set count=8 where department_id=60
*
ERROR at line 1:
ORA-01732: data manipulation operation not legal on this view
  
C:正确。含有distinct的视图是复杂视图,不能直接进行删除列操作。

     凡是这样带有要把基表中多行合为一行的视图,改变视图中的一行,ORACLE都无法确定这一行对应基表中几行,这样的视图,都无法进行任何DML操作。会对多行进行合并的,也就只有分组、组函数和取消重复行DISTINCT选项。DISTINCT是取消重复行,其实就是将多个重复的行,合为一个,在视图中的一行,也有可能对应基表的中的若干行。



D:错误。通过视图插入到表中的数据,视图删除后表中数据不会被自动删除。删除视图只是删除视图的定义,视图是也称虚表不真正存放数据,真正的数据在表中。


   gyj@OCM> drop view v_t3;
View dropped.
gyj@OCM> select * from v_t3;
select * from v_t3
*
ERROR at line 1:
ORA-00942: table or view does not exist
gyj@OCM> select * from t3;

ID NAME           SALARY
---------- ---------- ----------
1 gyj1             5000
1 gyj11            5000
2 gyj2             6000
2 gyj22            6000
3 gyj3             7000
3 gyj33            7000
4 gyj4             8000
4 gyj44            8000
5 gyj5             7500

9 rows selected.



视图被删除了,但视图所对应的基表还在。  
E:正确。通过or replace选项就不用删除后重建视图,而是直接替换。

     

创建视图命令中的[OR REPLACE]的意义,REPLACE有替换的意思。它的主要作用是修改视图的定义,也就是修改视图内的SQL语句。比如说上面的empvu30,我想为empvu30中增加一个列first_name,命令如下:


hr@OCM>  CREATE OR REPLACE VIEW     empvu30
2   AS SELECT  employee_id, first_name,last_name, salary
3       FROM    employees
4       WHERE   department_id = 30;

View created.
  
F:不正。如果视图中有条件,此选项保证了你只能在视图的条件之内,对视图进行DML。

   例如我创建如下视图:
gyj@OCM> create or replace view v_t3 as select id, name,salary from t3 where salary>=7000 with check option;
View created.

视图中的条件是salary>=7000,因此,我插入一个要salary小于7000的行,将会报出错误:
gyj@OCM> insert into v_t3 values(5,'gyj5',1000);
insert into v_t3 values(5,'gyj5',1000)
            *
ERROR at line 1:
ORA-01402: view WITH CHECK OPTION where-clause violation
而插入一个大于7000的行,可以成功插入:


gyj@OCM> insert into v_t3 values(5,'gyj5',7500);
1 row created.
其他的更新、删除我就不再试了,只要DML的结果满足SALARY大于等7000,DML就可以正常进行。


  详细操作可以参考:

      http://blog.iyunv.com/guoyjoe/article/details/8614677

  

  
  QQ:252803295
  学习交流QQ群:
DSI&Core Search  Ⅰ 群:127149411(技术:已满)
DSI&Core Search  Ⅱ 群:177089463(技术:未满)
DSI&Core Search  Ⅲ 群:284596437(技术:未满)
DSI&Core Search  Ⅳ 群:192136702(技术:未满)
DSI&Core Search  Ⅴ 群:285030382(闲聊:未满)


  
  

  MAIL:oracledba_cn@hotmail.com
  BLOG: http://blog.iyunv.com/guoyjoe
  WEIBO:http://weibo.com/guoyJoe0218
  ITPUB: http://www.itpub.net/space-uid-28460966.html
  OCM:   http://education.oracle.com/education/otn/YGuo.HTM

版权声明:本文为博主原创文章,未经博主允许不得转载。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-136959-1-1.html 上篇帖子: OCP-1Z0-051 第170题 DELETE的注意事项 下篇帖子: OCP学习基本知识点总结
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表