管理oracle檢視
檢視可以看成一個儲存查詢(stored query)或一個虛擬表(virtual table).查詢僅僅儲存在oracle資料字典中,實際的資料沒有存放在任何其它地方,所以建立檢視不用消耗其他的空間。檢視也可以隱藏複雜查詢,比如多表查詢,但使用者只能看見檢視。檢視可以有與他所基於表的列名不同的列名。使用者可以建立限制其他使用者訪問的檢視。
1.建立檢視
CREATE VIEW命令建立檢視,定義檢視的查詢可以建立在一個或多個表,或其他檢視上。查詢不能有FOR UPDATE子串,在早期的ORACLE8i版本中不支援ORDER BY子串,現在的版本中CREATE VIEW可以擁有ORDER BY子串。
例:
SQL> CREATE VIEW TOP_EMP AS
SELECT empno EMPLOYEE_ID,ename EMPLOYEE_NAME,salary
FROM emp
WHERE salary >2000
使用者可以在建立檢視的同時更改列名,方法是在檢視名後立即加上要命名的列名。重新定義檢視需要包含OR REPLACE子串。
SQL> CREATE VIEW TOP_EMP
(EMPLOYEE_ID,EMPLOYEE_NAME,SALARY) AS
SELECT empno ,ename ,salary
FROM emp
WHERE salary >2000
如果在建立的檢視包含錯誤在正常情況下,檢視將不會被建立。但如果你需要建立一個帶錯誤的檢視必須在CREATE VIEW語句中帶上FORCE選項。如:
CREATE FORCE VIEW ORDER_STATUS AS
SELECT * FROM PURCHASE_ORDERS
WHERE STATUS='APPPOVE';
SQL>/
warning :View create with compilation errors 網管論壇bbs_bitsCN_com
這樣將建立了一個名為ORDER_STATUS的檢視,但這樣的檢視的狀態是不合法的,如果以後狀態發生變化則可以重新編譯,其狀態也變成合法的。
從檢視中獲得資料
從檢視中獲得資料與從表中獲得資料基本一樣,使用者可以在連線和子查詢中使用檢視,也可以使用SQL函式,以及所有SELECT語句的字串。
插入、更新、刪除資料
使用者在一定的限制條件下可以透過檢視更新、插入、刪除資料。如果檢視連線多個表,那麼在一個時間裡只能更新一個表。所有的能被更新的列可以在資料字典USER_UPDATETABLE_COLUMNS中查到。
使用者在CREATE VIEW中可以使用了WITH子串。WITH READ ONLY子串表示建立的檢視是一個只讀檢視,不能進行更新、插入、刪除操作。WITH CHECK OPTION表示可以進行插入和更新操作,但應該滿足WHERE子串的條件。這個條件就是建立檢視WHERE子句的條件。
[@more@]來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11754099/viewspace-1008803/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle OCP(27):使用資料字典檢視管理物件Oracle物件
- Oracle OCP(24):檢視Oracle
- Oracle普通檢視和物化檢視的區別Oracle
- oracle 檢視錶空間Oracle
- 11、Oracle中的檢視Oracle
- 檢視oracle臨時表空間佔用率的檢視Oracle
- 管理mysql的檢視MySql
- Oracle檢視歷史TOP SQLOracleSQL
- oracle檢視物件DDL語句Oracle物件
- 檢視ORACLE中鎖定物件Oracle物件
- ORACLE 檢視IP,解析機器名Oracle
- Oracle相關資料字典檢視Oracle
- Oracle常用檢視錶結構命令Oracle
- 19 Oracle Data Guard 相關檢視Oracle
- ORACLE常見檢視和表整理Oracle
- 【PDB】Oracle跨PDB檢視查詢Oracle
- Oracle 如何高效的檢視官方文件Oracle
- oracle 歷史檢視檢視,看這一篇就夠了Oracle
- 檢視oracle資料庫的連線數以及使用者檢視Oracle資料庫
- Oracle“並行執行”——監控檢視Oracle並行
- Oracle檢視執行計劃的命令Oracle
- Oracle物化檢視的建立及使用(二)Oracle
- Oracle物化檢視的建立及使用(一)Oracle
- 檢視oracle資料庫真實大小Oracle資料庫
- oracle 統計資訊檢視與收集Oracle
- 4.2.8 檢視元件的Oracle重啟配置元件Oracle
- oracle檢視被鎖的表和解鎖Oracle
- Oracle 檢視可以DML操作的條件Oracle
- oracle db link的檢視建立與刪除Oracle
- oracle 11g檢視alert日誌方法Oracle
- 檢視Oracle的redo日誌切換頻率Oracle
- oracle SGA區基礎知識與檢視命令Oracle
- ORACLE 閃回檢視v$flashback_database_log/statOracleDatabase
- Oracle檢視歸檔是否被備庫應用Oracle
- 檢視oracle死鎖程式並結束死鎖Oracle
- 關於Oracle dba_free_space 檢視的研究Oracle
- Oracle如何檢視真實執行計劃(一)Oracle
- 檢視oracle被鎖的表是誰鎖的Oracle
- 【SQL】Oracle查詢轉換之檢視合併SQLOracle