Oracle視圖 create View

來源:互聯網
上載者:User

標籤:tps   strong   官網   data   查詢   查看串連   any   force   控制   

視圖是一種虛表,使用CREATE VIEW語句來定義視圖,該視圖是基於一個或多個表或視圖的邏輯表。一個視圖本身不包含任何資料, 視圖所基於的表稱為基表。

視圖就相當於一條select 語句,定義了一個視圖就是定義了一個sql語句, 視圖不佔空間,使用視圖不會提高效能,但是能簡化sql語句 。

建立視圖:
create view 視圖名;

如:

create or replace view  v_test  as select * from test where age=10;
create or replace: 如果view存在就覆蓋,不存在才建立。

刪除視圖: 

 

drop view 視圖名; 

許可權控制:

要在您自己的模式中建立視圖,您必須具有CREATE VIEW系統特權。
要在其他使用者的模式中建立視圖,您必須具有CREATE ANY VIEW系統特權。
包含該視圖的模式的所有者必須具有從視圖所基於的所有表或視圖中選擇,插入,更新或刪除行所必需的許可權。

詳細語句解析:

CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view
[(alias[, alias]...)]
AS subquery
[WITH CHECK OPTION [CONSTRAINT constraint]]
[WITH READ ONLY [CONSTRAINT constraint]];

其中:

with read only視圖唯讀約束 

with check option 不允許插入與where條件不符的記錄,類似於check約束的功能. 

通過視圖修改資料:

CREATE VIEW clerk AS SELECT employee_id, last_name, department_id, job_id FROM employees   

   WHERE job_id = ‘PU_CLERK‘ or job_id = ‘SH_CLERK‘ or job_id = ‘ST_CLERK‘;

使用視圖修改基表的資料,只有員工的ID,姓氏,部門號碼和職位在該視圖中可見,並且這些列只能在僱員是職員的行中更新:

UPDATE clerk SET job_id = ‘PU_MAN‘ WHERE employee_id = 118;

有限制的修改:

串連視圖是其視圖子查詢包含串連的視圖。如果聯結中至少有一列具有唯一索引,則可以在聯結視圖中修改一個基表。

CREATE VIEW locations_view AS

SELECT d.department_id, d.department_name, l.location_id, l.city 

FROM departments d, locations l WHERE d.location_id = l.location_id;

新增記錄  INSERT INTO locations_view VALUES(999, ‘Entertainment‘, 87, ‘Roma‘); 

系統返回:ERROR at line 1:

ORA-01776: cannot modify more than one base table through a join view

可以查詢系統資料表USER_UPDATABLE_COLUMNS,查看串連視圖中的列是否可更新。

SELECT column_name, updatable  FROM user_updatable_columns

WHERE table_name = ‘LOCATIONS_VIEW‘    ORDER BY column_name, updatable;

改成如下語句,操作成功

INSERT INTO locations_view (department_id, department_name) VALUES (999, ‘Entertainment‘);

 

1 row created.

 

 

 

參考文獻

     oracle官網的Oracle11G-en-US.pdf

 

Oracle視圖 create View

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.