【本文詳細介紹了資料庫的基礎知識之視圖的基本概念和常用操作,歡迎讀者朋友們閱讀、轉發和收藏!】
1 基本概念
1.1 視圖的概念
1. 視圖是一種資料庫對象,是從一個或者多個數據表或視圖中導出的虛表,視圖所對應的數據並不真正地存儲在視圖中,而是存儲在所引用的數據表中,視圖的結構和數據是對數據表進行查詢的結果。
2. 從用戶角度來看,一個視圖是從一個特定的角度來查看資料庫中的數據;從資料庫系統內部來看,一個視圖是由 SELECT 語句組成的查詢定義的虛擬表。從資料庫系統內部來看,視圖是由一張或多張表中的數據組成的,從資料庫系統外部來看,視圖就如同一張表 一樣,對表能夠進行的一般操作都可以應用於視圖,例如查詢,插入,修改,刪除操作等。
3. 根據創建視圖時給定的條件,視圖可以是一個數據表的一部分,也可以是多個基表的聯合,它存儲了要執行檢索的查詢語句的定義,以便在引用該視圖時使用。
1.2 視圖的優點
1. 簡化數據操作:視圖可以簡化用戶處理數據的方式。
2. 著重於特定數據:不必要的數據或敏感數據可以不出現在視圖中。
3. 視圖提供了一個簡單而有效的安全機制,可以定製不同用戶對數據的訪問權限。
4. 提供向後兼容性:視圖使用戶能夠在表的架構更改時為表創建向後兼容接口。
5. 自定義數據:視圖允許用戶以不同方式查看數據。
6. 導出和導入數據:可使用視圖將數據導出到其他應用程式。
7. 有靈活性的功能需求後,需要改動表的結構而導致工作量比較大,那麼可以使用虛擬表的形式達到少修改的效果。這是在實際開發中比較有用的
8. 複雜的查詢需求,可以進行問題分解,然後將創建多個視圖獲取數據。將視圖聯合起來就能得到需要的結果了。
1.3 視圖的操作
創建視圖
CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view_name[(alias[, alias]...)]AS subquery[WITH CHECK OPTION [CONSTRAINT constraint]][WITH READ ONLY]OR REPLACE :若所創建的試圖已經存在, ORACLE 自動重建該視圖;FORCE :不管基表是否存在 ORACLE 都會自動創建該視圖;NOFORCE :只有基表都存在 ORACLE 才會創建該視圖:alias :為視圖產生的列定義的別名;subquery :一條完整的 SELECT 語句,可以在該語句中定義別名;WITH CHECK OPTION :插入或修改的數據行必須滿足視圖定義的約束;WITH READ ONLY :該視圖上不能進行任何 DML 操作。查詢視圖
視圖創建成功後,可以從視圖中檢索數據,這點和從表中檢索數據一樣。還可以查詢視圖的全部信息和指定的數據行和列。
刪除視圖
DROP VIEW VIEW_NAME 語句刪除視圖。
刪除視圖的定義不影響基表中的數據,只有視圖所有者和具備 DROP VIEW 權限的用戶可以刪除視圖。視圖被刪除後,基於被刪除視圖的其他視圖或應用將無效。
更新視圖
更新視圖是指通過視圖來插入、更新、刪除表數據,因為視圖是虛表,其中沒有數據。
通過視圖更新的時候都是轉到基表進行更新,如果對視圖增加或者刪除記錄,實際上是對基表增加或刪除記錄。
當視圖中包含如下內容的時候,視圖的更新操作將不能被執行
( 1 )視圖中包含基本中被定義為非空的列
( 2 )定義視圖的 SELECT 語句後的欄位列表中使用了數學表達式
( 3 )定義視圖的 SELECT 語句後的欄位列表中使用聚合函數
( 4 )定義視圖的 SELECT 語句中使用了 DISTINCT 、 UNION 、 TOP 、 GROUP BY 、 HAVING 子句
我知道你在看喲