Oracle視圖

Oracle視圖

視圖是一個虛擬表,視圖並不在資料庫中存儲數據值,資料庫中只在數據字典中存儲對視圖的定義。

優點,語法,參數說明,視圖類別,查詢許可權,視圖狀態,有效方法,刪除視圖,

優點

1.為用戶集中數據,簡化用戶的數據查詢和處理。
2.禁止資料庫的複雜性,用戶不必了解資料庫的複雜性。
3.簡化用戶許可權的管理,只授予用戶使用視圖的許可權。
4.便於數據共享,多個用戶不必都定義所需的數據。
5.可以重新組織數據,以便關聯到其他套用中。

語法

CREATE [ORREPLACE] VIEW view_name[(column_name1[,column_name2…ASselect_statement[WITHCHECKOPTION][WITHREADONLY]

參數說明

CREATE OR Replace:用於創建和修改視圖
WITH CHECK OPTION:用於創建限制數據訪問的視圖
WITH READONLY:用於創建唯讀視圖

視圖類別

1、簡單視圖
指基於單個表並且不包含函式或表達式的視圖,在該視圖上可以執行DML語句(即可執行增、刪、改操作)。
2、複雜視圖
指包含函式、表達式或者分組數據的視圖,在該視圖上執行DML語句時必須要符合特定條件。
註:在定義複雜視圖時必須為函式或表達式定義別名
3、連線視圖
指基於多個表建立的視圖,一般來說不會在該視圖上執行INSERT、UPDATE、DELETE操作。
4、唯讀視圖
指只允許進行SELECT操作的視圖,在該視圖時指定WITHREADONLY選項。
註:該視圖上不能執行INSERT、UPDATE、DELETE操作。
5、check約束視圖
WITHCHECKOPTION用於在視圖上定義CHECK約束,即在該視圖上執行INSERT或UPDATE操作時,數據必須符合查詢結果.

查詢許可權

select table_name,column_name,updatable,inser table,deletable
from user_updatable_columns;
說明
updatable表示當前欄位是否可以執行修改操作
insertable表示當前欄位是否可以執行添加操作
deletable表示當前欄位是否可以執行刪除操作

視圖狀態

當創建視圖後,ORACLE將會驗證視圖的有效性,如修改了基本表,則會導致視圖的無效狀態.可查詢數據字典user_objects的status.
1)、創建表T,包含ID和NAME兩列;
2)、使用該表創建一個視圖t_view,查看該表所有信息;
3)、使用該表創建一個視圖t_view2,查看該表的ID和NAME列
4)、查看該視圖狀態;
5)、在表T上增加一列性別sex,重新查看視圖t_view的狀態.
6)、在表T上刪除列NAME,重新查看視圖t_view2的狀態.
註:VALID表示正常狀態,invalid表示非正常狀態

有效方法

1)在ORACLE中對該視圖進行一次查詢,如果沒有錯誤,則系統會自動對其進行重新編譯,視圖狀態變為有效。
2)手動重新編譯視圖
語句格式:
ALTER VIEW view_nameCOMPILE;

刪除視圖

語句格式:
 Drop view view_name

相關詞條

熱門詞條

聯絡我們