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

首頁 > 數(shù)據(jù)庫 > Oracle > 正文

在Oracle9i中定義視圖約束

2024-08-29 13:32:05
字體:
供稿:網(wǎng)友

在oracle9i出現(xiàn)之前,oracle視圖總是從它們的基表(base tables)中動態(tài)產(chǎn)生的,并且視圖中不能包含約束。通過隱藏所有的內(nèi)部表格連接操作,oracle視圖可以簡化復(fù)雜的查詢。
 

例如,下面的視圖用以顯示五金(widget)產(chǎn)品的訂貨信息。

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';

在定義了這個視圖之后,我們就能過對它進(jìn)行復(fù)雜的查詢。

select * from widget_orders where order_date > sysdate-5;

傳統(tǒng)的視圖所帶來的問題就是我們不能對視圖定義參考完整性約束(referential integrity constraints)。從oracle9i開始,oracle支持下面的視圖約束。

非空(not null):這個約束總是從創(chuàng)建視圖的基表中繼承而來的。
唯一性約束(unique constraints):oracle9i允許對視圖的任意一欄定義唯一性約束。
主鍵(primary key):我們可以直接給視圖定義主鍵約束。
外鍵(foreign key):只要視圖有依賴于其它基表的外鍵,那么就會直接存在外鍵參考完整性。
正如你所知道的那樣,對視圖的參考完整約束進(jìn)行管理會極大的影響到查詢的性能。

在oracle9i中,我們能夠回避非約束視圖所帶來的問題。下面的例子對一個視圖創(chuàng)建了主鍵約束。

alter view
   widget_orders
add constraint
   widget_orders_pk
primary key
   (cust_name, order_date, product_name)
disable novalidate;

 

最大的網(wǎng)站源碼資源下載站,

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 虎林市| 方城县| 贡觉县| 时尚| 太谷县| 河北省| 海南省| 白玉县| 荥阳市| 霸州市| 象州县| 祥云县| 正蓝旗| 丘北县| 清苑县| 大石桥市| 岐山县| 德格县| 老河口市| 林芝县| 巴东县| 松滋市| 光山县| 尤溪县| 平阳县| 江都市| 德清县| 河间市| 镇坪县| 黄平县| 昌乐县| 黔西| 吉木萨尔县| 五峰| 武平县| 泸州市| 来凤县| 五常市| 同德县| 梧州市| 沭阳县|