ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 047-032

047-032

原创 Linux操作系统 作者:jbymy2000 时间:2012-03-17 08:57:22 0 删除 编辑
32. Which two statements are true regarding views? (Choose two.)
A. A simple view in which column aliases have been used cannot be updated.
B. A subquery used in a complex view definition cannot contain group functions
or joins.
C. Rows cannot be deleted through a view if the view definition contains the
DISTINCT keyword.
D. Rows added through a view are deleted from the table automatically when
the view is dropped.
E. The OR REPLACE option is used to change the definition of an existing view
without dropping and recreating it.
F. The WITH CHECK OPTION constraint can be used in a view definition to
restrict the columns displayed through the view.
Answer: CE
CREATE OR REPLACE VIEW VW_EMPLOYEES AS….
1:试验证明加了distinct的view是不能删除的
Sql>create or replace view dept_vie as
select distinct name from dept;
sql>delete dept_vie where name='1ee';
ORA-01732: 此视图的数据操纵操作非法
2: 如果视图定义包括条件(譬如 WHERE 子句)并且其意图是确保任何引用该视图的 INSERT 或
UPDATE 语句都应用 WHERE 子句,则必须使用 WITH CHECK OPTION 定义该视图。这个选项可以
确保数据库中正在修改的数据的完整性。如果在 INSERT 或 UPDATE 操作期间违反了条件,则
返回 SQL 错误。
下面是一个使用了 WITH CHECK OPTION 的视图定义的示例。要确保总是检查条件,WITH CHECK
OPTION 是必需的。在这种情况下,我们希望确保 DEPT 总是 10。这会限制 DEPT 列的输入值。
当使用视图插入新值时,总是强制执行 WITH CHECK OPTION。
CREATE VIEW EMP_VIEW2
(EMPNO,EMPNAME,DEPTNO,JOBTITLE,HIREDATE)
AS SELECT ID,NAME,DEPT,JOB,HIREDATE FROM EMPLOYEE
WHERE DEPT=10 WITH CHECK OPTION;
执行UPDATE EMP_VIEW2 SET DEPT=20 WHERE DEPT=10;
ORA-01402: 视图 WITH CHECK OPTIDN where 子句违规
如果这个子句不存在,那么某个使用该视图的用户就有可能更新某条记录,使其不再属于该
视图。例如,下列 SQL 语句可能会引起一些问题。 UPDATE EMP_VIEW2 SET DEPT=20 WHERE
DEPT=10; 这个语句的结果是该视图现在不包含任何记录,因为部门 10 不再有雇员了。
F具有迷糊性, WITH CHECK OPTION 不是限制显示

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/11312660/viewspace-718806/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 047-030
下一篇: 047-033
请登录后发表评论 登录
全部评论

注册时间:2012-01-10

  • 博文量
    416
  • 访问量
    202912