1. 程式人生 > >數據庫中的視圖

數據庫中的視圖

count 基本上 .com 好處 刪除 eat add 圖片 tween

視圖的一些好處:

1、視圖能夠簡化用戶的操作;
2、視圖使用戶能以多鐘角度看待同一數據;
3、視圖對重構數據庫提供了一定程度的邏輯獨立性;
4、視圖能夠對機密數據提供安全保護;
5、適當的利用視圖可以更清晰的表達查詢;

總結:高效,美觀,安全

Oracle對象教程:視圖(View)創建使用,視圖(View)實際上是一張或者多張表上的預定義查詢,這些表稱為基表。從視圖中查詢信息與從表中查詢信息的方法完全相同。只需要簡單的SELECT…FROM即可

語法結構:創建視圖

CREATE [OR REPLACE] [{FORCE|NOFORCE}] VIEW view_name

AS

SELECT查詢

[WITH READ ONLY CONSTRAINT]

語法解析:

1. OR REPLACE:如果視圖已經存在,則替換舊視圖。

2. FORCE:即使基表不存在,也可以創建該視圖,但是該視圖不能正常使用,當基表創建成功後,視圖才能正常使用。

3. NOFORCE:如果基表不存在,無法創建視圖,該項是默認選項。

4. WITH READ ONLY:默認可以通過視圖對基表執行增刪改操作,但是有很多在基表上的限制(比如:基表中某列不能為空,但是該列沒有出現在視圖中,則不能通過視圖執行insert操作),WITH READ ONLY說明視圖是只讀視圖,不能通過該視圖進行增刪改操作。現實開發中,基本上不通過視圖對表中的數據進行增刪改操作。

刪除視圖可以使用“DROP VIEW 視圖名稱”,刪除視圖不會影響基表的數據。

執行視圖:select * from viewname;

navicat下執行視圖的範例:

視圖名稱為:1027amkm

sql腳本為:

select A.KMID from KW_KM A LEFT JOIN KW_CC B on A.KM_CCID=B.CCID
WHERE B.CC_KSSJ IN(
SELECT CC_KSSJ from kw_cc WHERE CC_KSSJ between to_date(‘2018/10/27 00:00:00‘,‘yyyy-mm-dd hh24:mi:ss‘)
and to_date(‘2018/10/27 12:00:00‘,‘yyyy-mm-dd hh24:mi:ss‘))

sql語句執行視圖:SELECT * from "1027amkm";

執行結果:

技術分享圖片

視圖名稱為:iswj

sql腳本為:

SELECT
count(*) total,a.KSKM_ISWJ,
(
CASE a.KSKM_ISWJ
WHEN 1 THEN ‘違紀‘
ELSE ‘未違紀‘
END
)是否違紀
from QY_KD b
LEFT JOIN KW_KSKM a on a.KSKM_KDID=b.KDID LEFT JOIN QY_XQ c on b.kd_xqid=c.xqid
WHERE a.KSKM_KMID in(SELECT * from "1027amkm") GROUP BY a.KSKM_ISWJ

sql語句執行視圖:SELECT * from "iswj";

執行結果:

技術分享圖片

【註】視圖可以單獨使用,也可以向表一樣關聯使用

數據庫中的視圖