程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> 有關Oracle視圖的基本概念和創建

有關Oracle視圖的基本概念和創建

編輯:Oracle數據庫基礎

Oracle數據庫中,我們常用到視圖來建表,省時方便快捷。下面我們就來簡單介紹視圖的基本概念及Oracle視圖的創建。

視圖的概念

視圖是基於一張表或多張表或另外一個視圖的邏輯表。視圖不同於表,視圖本身不包含任何數據。表是實際獨立存在的實體,是用於存儲數據的基本結構。而視圖只是一種定義,對應一個查詢語句。視圖的數據都來自於某些表,這些表被稱為基表。通過視圖來查看表,就像是從不同的角度來觀察一個(或多個)表。
視圖有如下一些優點:
* 可以提高數據訪問的安全性,通過視圖往往只可以訪問數據庫中表的特定部分,限制了用戶訪問表的全部行和列。
* 簡化了對數據的查詢,隱藏了查詢的復雜性。視圖的數據來自一個復雜的查詢,用戶對視圖的檢索卻很簡單。
* 一個視圖可以檢索多張表的數據,因此用戶通過訪問一個視圖,可完成對多個表的訪問。
* 視圖是相同數據的不同表示,通過為不同的用戶創建同一個表的不同視圖,使用戶可分別訪問同一個表的不同部分。
視圖可以在表能夠使用的任何地方使用,但在對視圖的操作上同表相比有些限制,特別是插入和修改操作。對視圖的操作將傳遞到基表,所以在表上定義的約束條件和觸發器在視圖上將同樣起作用。

Oracle視圖的創建

創建Oracle視圖需要CREAE VIEW系統權限,視圖的創建語法如下:
CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW 視圖名[(別名1[,別名2...])]
AS 子查詢
[WITH CHECK OPTION [CONSTRAINT 約束名]]
[WITH READ ONLY]
其中:
OR REPLACE 表示替代已經存在的視圖。
FORCE表示不管基表是否存在,創建視圖。
NOFORCE表示只有基表存在時,才創建視圖,是默認值。
別名是為子查詢中選中的列新定義的名字,替代查詢表中原有的列名。
子查詢是一個用於定義視圖的SELECT查詢語句,可以包含連接、分組及子查詢。
WITH CHECK OPTION表示進行視圖插入或修改時必須滿足子查詢的約束條件。後面的約束名是該約束條件的名字。
WITH READ ONLY 表示視圖是只讀的。
刪除視圖的語法如下:
DROP VIEW 視圖名;
刪除視圖者需要是視圖的建立者或者擁有DROP ANY VIEW權限。視圖的刪除不影響基表,不會丟失數據。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved