Oracle中常見的資料庫物件–視圖

來源:互聯網
上載者:User

視圖

資料庫物件—視圖:

一、視圖的定義:從表中抽出的邏輯上相關的資料集合

a)         視圖是一種虛表

b)         視圖建立在已有表基礎上,視圖依賴已建立的這些表稱為基表

c)         向視圖提供資料內容的語句為SELECT語句,可以將視圖理解為儲存起來的SElECT語句

d)         視圖向使用者提供基表資料的另一種表示形式

二、為什麼要使用視圖

a)         控制資料訪問:提供了一種安全機制,通過視圖顯示資料時,屏蔽使用者不應該知道的資料.

b)        簡化查詢:select語句構造了一個複雜的查詢語句,每次使用必須都得調用它

c)         避免重複訪問相同的資料

三、建立視圖:

a)         在CREATE VIEW語句中嵌入子查詢

                                       i.              Create [OR REPLACE] [FORCE | NOFORCE] VIEW view [(alias  [,alias]…)]

                   AS subquerytion

                   [with check option [CONSTRAINT constraint ]]

                   [with read only [CONSTRAINT constraint]]

b)         子查詢可以是複雜的SELECT語句

                                       i.              CREATE VIEW empvu

                   AS   select employee_id,last_name,salary

                            FROM employees

                            WHERE    department_ed=80;

c)         描述視圖結構:

                                       i.              Describe empvu;

d)         建立視圖時在子查詢中給列定義別名

               i.      SQL> create view usersview as select username name,password pass from users;

              ii.      //查詢檢視

SQL> select * from usersview;

e)         使用CREATE OR REPLACE VIEW 子句修改視圖

               i.      SQL> create or replace view usersview as(select * from users);

f)    建立帶有函數,groupby子句視圖

               i.      SQL> create or replace view gde as ( select deptno,count(*) cou from emp group by deptno);

g)    建立串連視圖 帶有函數 group by子句 order by 子句

               i.      SQL> create view gdeo as select e.deptno,count(*) cou from emp e inner join dept d on e.deptno=d.deptno group by e.deptno order by e.deptno;

四、 視圖中使用DML的規定

a)    可以在簡單視圖中執行DML操作

b)    當時圖定義中包含以下元素之一是不能使用delete:

               i.      組函數

              ii.      GROUP BY 子句

            iii.      DISTINCT 關鍵字

              iv.      ROWNUM 偽列

c)    當視圖定義中包含以下元素之一時不能使用update :

               i.      組函數

              ii.      GROUP BY子句

            iii.      DISTINCT 關鍵字

              iv.      ROWNUM 偽列

               v.      列的定義為運算式

d)    可以使用 WITH READ ONLY 選項屏蔽對視圖的DML 操作

d)任何 DML 操作都會返回一個Oracle server 錯誤

五、 刪除視圖

a)    Drop 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.