Oracle視圖概述

使用視圖的原因:安全,簡化用戶的SQL語句,防止錯誤的發生,提高性能,讓數據更加有意義;

 

創建視圖示例:

CREATE VIEW emp_finAS SELECT hire_date,job_id,salary,commission_pct FROM employees;

 

 

當對兩張表進行關聯的時候通常用到兩種技術:nested loop,  hash join

nestedloop join uses an index to get to individual rows

hash joinreads the whole table into memory;

create view dept_emp as select /*+USE_HASH(employees departments)*/ department_name,last_name

fromdepartments natural join employees;

 

簡單視圖和複雜視圖

簡單視圖和複雜視圖的分類方法是:是否允許DML語句執行

簡單視圖允許DML語句:A simple view draws data from one detailtable, uses no functions ,and does no aggregation

複雜視圖不允許DML語句:A complexview can join detail table, use functions, and perform aggregations;

 

創建視圖

CREATE [OR REPLACE][FORCE | NOFORCE ] VIEW

viewname [(alias1)]

AS subquery

[WITH CHECK OPTION[CONSTRAINT constraintname]]

[WITH READ ONLY[CONSTRAINT constraintname]];

 

force:即使原表不存在也建立起一個視圖;

withcheck option:

with read only:組織通過視圖進行DML操作;

 

視圖必須通過成功編譯纔可以被使用;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章