【文章內(nèi)容簡介】
or replace view來創(chuàng)建圖 111所演示的視圖。 create or replace view vw_employee_salary as select , , , from employees e, salary s where = 。 強制創(chuàng)建視圖 歸根結(jié)底,視圖數(shù)據(jù)的來源是基礎(chǔ)數(shù)據(jù)表。有時,視圖的基礎(chǔ)表尚未創(chuàng)建,但是仍然希望創(chuàng)建基于不存在的數(shù)據(jù)表的視圖。 c u s t o m e rc u s t o m e r _ i dc u s t o m e r _ c o d ec u s t o m e r _ n a m ec u s t o m e r _ l e v e lc o n t a c t _ t e l e p h o n e . . . 創(chuàng)建視圖約束 針對視圖, Oracle提供了 check option選項,以保證視圖數(shù)據(jù)的完整性。本小節(jié)將從以下幾個方面分析 with check option選項。 1. with check option僅在視圖定義中含有 where子句的情況下起作用 2. with check option選項僅對 insert/update操作有效 3. with check option選項實際創(chuàng)建了一個約束 4.總結(jié) with check option選項 使用內(nèi)嵌視圖 關(guān)系視圖是數(shù)據(jù)庫對象。創(chuàng)建關(guān)系視圖實際是對查詢定義可重用的需求。但有時,查詢定義并不會被重用。此時,創(chuàng)建關(guān)系視便不再適宜 —— 過多的關(guān)系視圖勢必增加數(shù)據(jù)庫的維護成本。 Oracle提供了內(nèi)嵌視圖來解決這一問題。 內(nèi)嵌視圖簡介 如同關(guān)系視圖,內(nèi)嵌視圖也是查詢定義。內(nèi)嵌的意義在于,視圖定義嵌入在復雜查詢語句中,其角色與普通數(shù)據(jù)表或關(guān)系視圖相同。內(nèi)嵌視圖不必使用 create view命令進行創(chuàng)建,因此,在數(shù)據(jù)字典中也無法獲得相應(yīng)信息。內(nèi)嵌視圖是子查詢的一種,可以與數(shù)據(jù)表、視圖一樣作為查詢語句的數(shù)據(jù)源存在,但在形式上有較大的區(qū)別。 使用內(nèi)嵌視圖 內(nèi)嵌視圖可以應(yīng)用于查詢語句、更新語句及插入語句中。其中最常用的場景為復雜的查詢中的子查詢或作為中間結(jié)果集。 【 示例 1115】 在表 employees中存儲了員工的信息,現(xiàn)欲獲取年齡最小的兩名員工的信息。為了保證最終結(jié)果的正確性,我們首先進行人工分析。 SQL select * from employees。 內(nèi)嵌視圖小結(jié) 內(nèi)嵌視圖的特點在于無需創(chuàng)建真正的數(shù)據(jù)庫對象,而只是封裝查詢,因此會節(jié)約數(shù)據(jù)庫資源,同時不會增加維護成本。但是內(nèi)嵌視圖不具有可復用性,因此當預期將在多處調(diào)用到同一查詢定義時,還是應(yīng)該使用關(guān)系視圖。 內(nèi)嵌視圖之所以稱為內(nèi)