国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

Oracle9i中定義視圖約束

2024-08-29 13:35:07
字體:
來源:轉載
供稿:網友
在Oracle9i出現之前,Oracle視圖總是從它們的基表(base tables)中動態產生的,并且視圖中不能包含約束。通過隱藏所有的內部表格連接操作,Oracle視圖可以簡化復雜的查詢。

例如,下面的視圖用以顯示五金(widget)產品的訂貨信息。create or replace view

widget_orders

as

select

cust_name,

order_date,

PRodUCt_name,

sum(qty*price) total cost

from

customer

natural join

orders

natural join

order_item

natural join

product

where

product_type = 'widget'; 在定義了這個視圖之后,我們就能過對它進行復雜的查詢。select * from widget_orders where order_date > sysdate-5; 傳統的視圖所帶來的問題就是我們不能對視圖定義參考完整性約束(referential integrity constraints)。從Oracle9i開始,Oracle支持下面的視圖約束。非空(NOT NULL):這個約束總是從創建視圖的基表中繼續而來的。

唯一性約束(Unique constraints):Oracle9i答應對視圖的任意一欄定義唯一性約束。

主鍵(Primary key):我們可以直接給視圖定義主鍵約束。

外鍵(Foreign Key):只要視圖有依靠于其它基表的外鍵,那么就會直接存在外鍵參考完整性。

正如你所知道的那樣,對視圖的參考完整約束進行治理會極大的影響到查詢的性能。在Oracle9i中,我們能夠回避非約束視圖所帶來的問題。下面的例子對一個視圖創建了主鍵約束。alter view

widget_orders

add constraint

widget_orders_pk

primary key

(cust_name, order_date, product_name)

disable novalidate; 注:本文作者Donald Bunleson是一名有著23年工作經驗的數據庫治理員,他編寫了14本數據庫方面的書籍并發表了100多篇文章。他還是Oracle Internals的主編,同時他還開辦了Bunleson Oracle咨詢公司。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 龙岩市| 大庆市| 石门县| 泾川县| 勐海县| 新营市| 运城市| 泾源县| 靖远县| 兴化市| 崇义县| 临江市| 郁南县| 民和| 东阳市| 自治县| 新巴尔虎右旗| 七台河市| 炉霍县| 江达县| 玛纳斯县| 阿坝县| 安丘市| 东至县| 宣城市| 雅安市| 汪清县| 丁青县| 廊坊市| 邵阳市| 英山县| 曲水县| 望都县| 浦江县| 江西省| 东平县| 高唐县| 湄潭县| 新密市| 汤阴县| 太原市|