[每日一题] OCP1z0-047 :2013-08-12 view视图的描述哪些是正确的?
正确答案是: CE
这是OCP教材中的:
1、简单视图与复杂视图的定义:
2、复杂视图通常不能被DML:
、WITH CHECKOP TIONT选项
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.csdn.net/guoyjoe/article/details/8614677
[每日一题] OCP1z0-047 :2013-08-12 view视图的描述哪些是正确的?的更多相关文章
- <2013 08 12> Andrew:C语言的一点心得
C语言的特点在于,这是少见的中级语言(介于机器汇编和高级语言之间),因此它极其紧密地与特定机器架构.编译器.操作系统.库等基本概念相连.在底层,人们可以少量的甚至不使用汇编,但是不能不使用C.它以一种 ...
- [每日一题] OCP1z0-047 :2013-07-30 表连接――内联视图当作表使用
用sys用户登录,给oe用户授权dba,以便可以用oe用户查看执行计划: oe@OCM> conn / as sysdba Connected. sys@OCM> grant dba to ...
- 【js】Leetcode每日一题-完成所有工作的最短时间
[js]Leetcode每日一题-完成所有工作的最短时间 [题目描述] 给你一个整数数组 jobs ,其中 jobs[i] 是完成第 i 项工作要花费的时间. 请你将这些工作分配给 k 位工人.所有工 ...
- 【JavaScript】Leetcode每日一题-二叉搜索树的范围和
[JavaScript]Leetcode每日一题-二叉搜索树的范围和 [题目描述] 给定二叉搜索树的根结点 root,返回值位于范围 [low, high] 之间的所有结点的值的和. 示例1: 输入: ...
- 【js】Leetcode每日一题-停在原地的方案数
[js]Leetcode每日一题-停在原地的方案数 [题目描述] 有一个长度为 arrLen 的数组,开始有一个指针在索引 0 处. 每一步操作中,你可以将指针向左或向右移动 1 步,或者停在原地(指 ...
- CISP/CISA 每日一题 12
CISA 每日一题(答) 支付系统模式有哪些: 电子现金模式:支付者不必在线,无条件不可追溯性 电子支票模式:支付者不必在线,涉及个人隐私 电子转帐模式:收款人不必在线 图象处理中,应该有适当的___ ...
- 老男孩IT教育-每日一题汇总
老男孩IT教育-每日一题汇总 第几天 第几周 日期 快速访问链接 第123天 第二十五周 2017年8月25日 出现Swap file….already exists以下错误如何解决? 第122天 2 ...
- 2013年12月26日 星期四 doxygen入门--很好
body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...
- PL/SQL Challenge 每日一题:2014-3-14 11gR2中带RELIES_ON子句的RESULT_CACHE函数
PL/SQL Challenge 每日一题:2014-3-14 11gR2中带RELIES_ON子句的RESULT_CACHE函数 最先答对且答案未经编辑的puber将获得纪念章一枚(答案不可编辑但可 ...
随机推荐
- KVC - 键值编码
[基本概念] 1.键值编码是一个用于间接访问对象属性的机制,使用该机制不需要调用存取方法和变量实例就可访问对象属性. 2.键值编码方法在OC非正式协议(类目)NSKeyValueCoding中被声明, ...
- PHP程序的一次重构记录
项目和新需求: 我们有一个PHP写的webmail系统,有一个mail_list.php用于展现用户的邮件列表这个页面支持folderId参数(因为邮件是存在不同的文件夹下的)由于邮件太多所以支持翻页 ...
- [原博客] POI系列(4)
正规.严谨.精妙. -POI BZOJ 1531 : [POI2005]Bank notes 裸的背包,可以二进制拆分一下.一个物品比如说有n个,可以拆成 1,2,4,8,16...个. OJ上没有样 ...
- Eclipse右键New菜单项的自定义设置
大家都知道一般在Eclipse中新建一个项目或者文件都是通过菜单项的File-New来创建,然而有些右键出来的选项可能从来都不会使用到,而有些可能会常用到但是右键中又没有,这个时候就可以自定义New中 ...
- spring初始化
* Created by litao on 15/12/29. */@Component("initTagDataProcessor")public class InitTagDa ...
- HttpResponseCache 网络缓存使用
Caches HTTP and HTTPS responses to the filesystem so they may be reused, saving time and bandwidth. ...
- android中handler中 obtainmessge与New message区别
obtainmessage()是从消息池中拿来一个msg 不需要另开辟空间new new需要重新申请,效率低,obtianmessage可以循环利用: //use Handler.obtainMess ...
- 火车车次查询-余票查询--Api接口
1.来自12306的火车车次数据 使用12306网站的接口,查询余票.此接口采集自 这里. 全国火车站代号字典,下载 . 火车票余票查询 http://dynamic.12306.cn/otsquer ...
- 转:二十七、Java图形化界面设计——容器(JFrame)
转:http://blog.csdn.net/liujun13579/article/details/7756729 二十七.Java图形化界面设计——容器(JFrame) 程序是为了方便用户使用的, ...
- 【CF】121 Div.1 C. Fools and Roads
题意是给定一棵树.同时,给定如下k个查询: 给出任意两点u,v,对u到v的路径所经过的边进行加计数. k个查询后,分别输出各边的计数之和. 思路利用LCA,对cnt[u]++, cnt[v]++,并对 ...