Oracle(二)--> 視圖詳解(高清多圖,還怕懂不了?),oracle多圖

來源:互聯網
上載者:User

Oracle(二)--> 視圖詳解(高清多圖,還怕懂不了?),oracle多圖
一、什麼是視圖。1、視圖是一種虛表;2、視圖建立在已有表的基礎上,視圖來一建立的這些表稱為基表;3、向視圖提供資料內容的語句為 SELECT 語句,可以將視圖理解為儲存起來的 SELECT語句;4、視圖向使用者提供基表資料的另一種表現形式。
二、為什麼使用視圖1、提供了另外一種層級的表的安全性(控制資料訪問:不想讓每個人都看到)2、隱藏了資料的複雜性3、簡化了使用者的 SQL 命令4、隔離基表結構的改變5、通過重新命名列,從另一個角度提供資料6、避免重複訪問相同的資料
三、為視圖賦予許可權更換到 system 賬戶(system / admin),然後在頁面中輸入命令:    grand create any view to scott;即可建立視圖許可權成功。
建立視圖的命令(為 user_view 表添加資料):
建立成功
修改視圖的資料
命令格式為 update 表名 set 列名 where ...
重新查詢檢視和表時,會發現兩邊的資料均做了更改(比較簡略的表 =。=)
說明:對視圖的修改會影響表,即不同許可權的人不僅可以查看符合自己許可權的資料,也可以變更,而且主表資料也會被更改。
簡化查詢
通過多表串連將資料添加到視圖,則此視圖將擁有兩個表合格資料,從而在每次增刪改查資訊的時候可以直接對視圖表進行操作,而不必每次通過多表串連來實現。使得查詢等變得簡單,簡化SQL。
修改視圖如果需要對 empview2 表的資料進行修改,可以使用命令:create or replace view empview2。如果仍使用 create view empview2 會報錯:名稱以由現有對象使用。
屏蔽 DML 操作當使用者僅有查看許可權,無操作資料庫許可權時,可以為其添加一個命令:with read only
來進行屏蔽 DML 操作。
四、簡單視圖和複雜視圖
區別:有沒有用到分組函數。
複雜視圖例:
查詢得出合格資料:
視圖中使用 DML 的規定1、可以在簡單視圖中執行 DML 操作2、當視圖定義中出現以下元素之一時不能使用 delete:---組函數---group by 子句
---distinct 關鍵字---rownum 偽列
五、TOP - N 分析1、根據 rownum 查詢工資前八名的員工 id、工資、姓名
如果通過 rownum 進行中間值查詢時,會無資料返回
原因:對 rownum 只能使用 < 或 <= , 而用 =, >, >= 都不能返回任何資料。那該如何?一個類似分頁的功能呢?如何尋找指定範圍內的資料?分析:此時偽列是不可以被使用的,但是如果將偽列變為真實存在的列然後再進行查詢便可以得出想要的資料了。
將 rownum 命名為 rn ,在最外層的 sql 語句中查詢 rn(防止與本層 rownum 衝突),然後再加上 rn 的條件即可查詢。結果如下:
其他顯示視圖的結構:






著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

相關文章

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.