暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle中的视图分为哪几类?

DB宝 2019-03-02
2286


题目部分

Oracle中的视图分为哪几类?


     

答案部分


Oracle的视图大约可以分为以下几类:

1)简单视图,基于单个表所建视图,不包含任何函数、表达式及分组数据的视图。

2)复杂视图,包含函数、表达式或者分组数据的视图。

3)连接视图,基于多表所建立的视图。

4)只读视图,只允许执行查询操作。

5)内联视图(Inline View),也叫内嵌视图、临时视图、行内视图、或内建视图,它是出现在FROM子句中的子查询,内联视图不属于数据库对象。

6)物化视图(Materialized Views),物化视图是包括一个查询结果的数据库对象,更多内容可以参考【真题138物化视图(Materialized Views的作用是什么?】。

Oracle中,如果要在当前用户中创建视图,那么用户必须具有CREATE VIEW的系统权限。如果要在其他用户中创建视图,那么用户必须具有CREATE ANY VIEW的系统权限。

Oracle中创建视图的语法如下所示:

CREATE [ OR REPLACE ] [ FORCE ]  VIEW  [SCHEMA.]VIEW_NAME

                      [ (COLUMN1,COLUMN2,...) ]

                      AS

                      SELECT ...

                      [ WITH CHECK OPTION ] [ CONSTRAINT CONSTRAINT_NAME ]

                      [ WITH READ ONLY ];

有关创建视图的语法,需要注意以下几点内容:

① OR REPLACE:如果存在同名的视图,那么使用新视图重建已有的视图。

② FORCE:强制创建视图,不考虑基表是否存在,也不考虑是否具有使用基表的权限。

③ COLUMN1,COLUMN2,...:视图的列名,列名的个数必须与SELECT查询中列的个数相同。如果SELECT查询包含函数或表达式,那么必须为其定义列名。此时,既可以用COLUMN1COLUMN2指定列名,也可以在SELECT查询中指定列名。

④ WITH CHECK OPTION:指定对视图执行的DML操作必须满足“视图子查询”的条件,即对通过视图进行的增、删、改操作进行检查,要求增、删、改操作的数据必须是SELECT所能查询到的数据,否则不允许操作,并返回错误提示。在默认情况下,在增、删、改之前并不会检查这些行是否能被SELECT检索到。

⑤ WITH READ ONLY:创建的视图只能用于查询数据而不能用于更改数据。

创建简单视图的示例如下所示:

 
SQL> 
CREATE
 VIEW
 VW_EMP_LHR 
AS
 SELECT
 
FROM
 SCOTT.EMP 
WHERE
 DEPTNO =20;
最后修改时间:2020-01-10 20:16:24
文章转载自DB宝,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论