1. 程式人生 > >Oracle檢視的建立和使用

Oracle檢視的建立和使用

檢視其實是一張虛表,是基於已存在的基表建立,可以將檢視理解為儲存起來的 SELECT 語句。

檢視的作用:
    1、控制資料的訪問
    2、簡化查詢
    3、避免訪問重複資料

賦權

首先要有建立檢視的許可權,沒有許可權的可以切換到sys或者system賬號,賦權以後再建立,我將sql語句放在下面:

--切換登陸使用者
conn system/密碼;

--賦權,我這裡將建立檢視的許可權賦給scott賬戶
grant create view to scott

 建立檢視

--v_name:檢視名

create[or replace] [FORCE|NOFORCE] view v_name
as
select語句
[with read only]只讀

其中的or replace是如果有檢視已經存在,則替換檢視。

Force和noforce是決定是否強制建立檢視,force是在基表不存在時也可以建立檢視的標誌,noforce指如果基表不存在,則不能建立檢視。Noforce是預設選項。

在儲存過程和函式中is和as沒什麼區別,但是建立檢視是用as,as後面就是接select語句

如果建立檢視的時候後面加了with read only,那麼就無法對這個檢視進行DML操作,也就是增刪改操作

使用

簡單檢視可以進行增刪改查操作,會影響到基表。

複雜檢視的操作規則如下:

一、當檢視定義中包含以下元素之一時不能使用delete:
    1、組函式(聚合函式)
    2、GROUP BY 子句
    3、DISTINCT 關鍵字
    4、ROWNUM 偽列

二、當檢視定義中包含以下元素之一時不能使用update:
    1、組函式(聚合函式)
    2、GROUP BY 子句
    3、DISTINCT 關鍵字
    4、ROWNUM 偽列
    5、列的定義為表示式

三、當檢視定義中包含以下元素之一時不能使insert:
    1、組函式(聚合函式)
    2、GROUP BY 子句
    3、DISTINCT 關鍵字
    4、ROWNUM 偽列
    5、列的定義為表示式
    6、表中非空的列在檢視定義中未包括


另外還有一種檢視:物化檢視。有興趣的小夥伴可以自行百度學習。