泽兴芝士网

一站式 IT 编程学习资源平台

SQL之视图

【十三】视图

13.1 为什么使用视图

1)限制数据的存取:

让用户只能看到基表的部分信息。

方法:赋予用户访问视图对象的权限,而不是表的对象权限。

2)使得复杂的查询的书写变得容易:

隐藏或简化书写多表连接等复杂语句(将一网打尽部分做成视图)。

3)提供数据的独立性:

基表的多个独立子集的映射。

13.2 简单视图和复杂视图

1) 简单视图:

视图与基表的记录一对一,故而可以通过视图修改基表。

2) 复杂视图:

视图与基表的记录一对多,无法修改视图。

视图

13.2 语法

CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view
[(alias[, alias]...)]
AS subquery
[WITH CHECK OPTION [CONSTRAINT constraint]]
[WITH READ ONLY];

13.2.1 FORCE作用:

可以先建视图,后建基表:

SQL>create force view view1 as select * from test1;

13.2.2 WITH CHECK OPTION作用:

对视图where子句进行约束,使视图结果集保持稳定。

SQL>create view view2 as select * from emp where deptno=10 with check option;

insert 不许插入非10号部门的记录

update 不许将10号部门修改为其他部门

13.2.3 WITH READ ONLY作用:

禁止对视图执行DML操作

SQL>create view view3 as select * from emp where deptno=10 with read only;

如果建立了视图 想查看其中的定义,可以访问如下视图dba_views中的text字段(long型);

declare
v_text dba_views.text%type;
v_name dba_views.view_name%type;
begin
select text, view_name into v_text,v_name FROM dba_views WHERE view_name='V1';
dbms_output.put_line(v_name||' define is :'||v_text);
end;


the end !!!

@jackman 共筑美好!

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言