Oracle檢視的建立和使用
阿新 • • 發佈:2018-12-15
檢視其實是一張虛表,是基於已存在的基表建立,可以將檢視理解為儲存起來的 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、表中非空的列在檢視定義中未包括
另外還有一種檢視:物化檢視。有興趣的小夥伴可以自行百度學習。