一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Oracle PL/SQL開(kāi)發(fā)基礎(chǔ)(第五彈:視圖)

 張小龍net館藏 2017-10-17

視圖是表的另外一種表示形式,他通過(guò)使用SELECT語(yǔ)句定義一個(gè)顯示數(shù)據(jù)的虛表,這個(gè)虛表只有對(duì)視圖的定義,并不包含實(shí)際的數(shù)據(jù)。

視圖簡(jiǎn)介

可以將視圖看成是一個(gè)“虛表”,或是一個(gè)“存儲(chǔ)的查詢”。在創(chuàng)建時(shí)視圖時(shí),只是將視圖的定義信息保存到數(shù)據(jù)字典中,并不將實(shí)際的數(shù)據(jù)復(fù)制到任何地方。
如:

CREATE OR REPLACE VIEW view_dept_emp
AS
   SELECT emp.empno, emp.ename, emp.job, emp.mgr, emp.hiredate, dept.dname,
          dept.loc
     FROM emp, dept
    WHERE emp.deptno = dept.deptno;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

查詢視圖就像查詢普通的表一樣,如:

SELECT * FROM view_dept_emp;  
  • 1

視圖有如下優(yōu)點(diǎn):
- 視圖限制數(shù)據(jù)的訪問(wèn),因?yàn)橐晥D能夠選擇性地顯示表中的列。
- 視圖可以用來(lái)構(gòu)成簡(jiǎn)單的查詢以取回復(fù)雜查詢的結(jié)果。例如,視圖能用于從多表中查詢信息,而用戶不必知道怎么寫(xiě)連接語(yǔ)句。
- 視圖對(duì)特別的用戶和應(yīng)用程序提供數(shù)據(jù)獨(dú)立性,一個(gè)視圖可以從幾個(gè)表中取回?cái)?shù)據(jù)。
- 視圖提供用戶組,按照他們的特殊標(biāo)準(zhǔn)訪問(wèn)數(shù)據(jù)。

創(chuàng)建視圖

視圖按照是否涉及DML操作,可以分為兩類(lèi):
- 簡(jiǎn)單視圖:視圖的數(shù)據(jù)僅來(lái)自一個(gè)表,在視圖的SELECT語(yǔ)句中不包含函數(shù)或數(shù)據(jù)分組,總是可以通過(guò)視圖來(lái)執(zhí)行DML操作。
- 復(fù)雜視圖:視圖的數(shù)據(jù)來(lái)自多個(gè)表,可以包含函數(shù)或數(shù)據(jù)分組,并不總是可以通過(guò)視圖進(jìn)行DML操作。

簡(jiǎn)單視圖

如:

CREATE OR REPLACE VIEW v_deptemp
AS
   SELECT empno, ename, job, mgr, hiredate, sal, comm
     FROM emp
    WHERE deptno = 20;
  • 1
  • 2
  • 3
  • 4
  • 5

可以像使用表一樣來(lái)使用這個(gè)視圖,如:

SELECT * FROM v_deptemp;
INSERT INTO v_deptemp VALUES(7999,'李思','經(jīng)理',7369,SYSDATE,8000,NULL);
  • 1
  • 2

可以使用WITH CHECK OPTION選項(xiàng)限制操作的數(shù)據(jù)必須是SELECT查詢所能選擇出來(lái)的數(shù)據(jù),如:

CREATE OR REPLACE VIEW v_deptemp_check
AS
   SELECT empno, ename, job, mgr, hiredate, sal, comm, deptno
     FROM emp
    WHERE deptno = 20
          WITH CHECK OPTION CONSTRAINT v_empdept_chk;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

當(dāng)執(zhí)行SML語(yǔ)句時(shí),如果操作的數(shù)據(jù)不在SELECT查詢所能選擇的數(shù)據(jù)范圍內(nèi),那么將觸發(fā)ORA-01402異常。

如果要禁止在視圖上執(zhí)行DML操作,可以使用WITH READ ONLY選項(xiàng),如:

CREATE OR REPLACE VIEW v_deptemp_readonly
AS
   SELECT empno, ename, job, mgr, hiredate, sal, comm
     FROM emp
    WHERE deptno = 20
   WITH READ ONLY;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

如果在該視圖上進(jìn)行DML操作,將會(huì)觸發(fā)ORA-42399異常。

可以通過(guò)給視圖指定別名來(lái)提供更加友好的視圖名稱,如:

CREATE OR REPLACE VIEW v_deptemp_alias (員工編號(hào),
                                        員工名稱,
                                        職位,
                                        經(jīng)理,
                                        雇傭日期,
                                        薪水,
                                        備注
                                       )
AS
   SELECT empno, ename, job, mgr, hiredate, sal, comm
     FROM emp
    WHERE deptno = 20;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

被列出的列名的個(gè)數(shù)必須與在子查詢中被選擇的表達(dá)式相匹配。

復(fù)雜視圖

如:

CREATE OR REPLACE VIEW v_sumdept(部門(mén)名稱,部門(mén)編號(hào))
AS
SELECT   dept.dname, SUM (emp.sal) sumsal
    FROM emp, dept
   WHERE emp.deptno = dept.deptno(+)
GROUP BY dept.dname;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

修改視圖

使用CREATE OR REPLACE即可刪除原來(lái)的視圖,然后創(chuàng)建一個(gè)新的視圖取代原有的視圖,同時(shí)會(huì)保留在該視圖上授予的各種權(quán)限。

更改視圖后,依賴于該視圖的所有視圖及PL/SQL程序都會(huì)變成INVALID狀態(tài)。
更新視圖的基礎(chǔ)表后,視圖會(huì)失效,可以對(duì)視圖進(jìn)行重編譯使視圖有效。Oracle會(huì)在視圖被訪問(wèn)時(shí)自動(dòng)重新編譯這些視圖。
也可以通過(guò)ALTER VIEW語(yǔ)句顯式地重新編譯視圖,如:

ALTER VIEW v_deptemp COMPILE;
  • 1

可以通過(guò)查詢數(shù)據(jù)字典視圖user_objects來(lái)獲取視圖的詳細(xì)信息,如:

SELECT last_ddl_time, object_name, status
  FROM user_objects
 WHERE object_name = 'V_DEPTEMP';
  • 1
  • 2
  • 3

刪除視圖

如:

DROP VIEW view_emp_dept;
  • 1

當(dāng)視圖被刪除之后,視圖的定義會(huì)從數(shù)據(jù)字典中刪除,在視圖上授予的權(quán)限也被刪除,其他引用該視圖的視圖及存儲(chǔ)過(guò)程等都會(huì)失效。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多

    欧美黑人巨大一区二区三区 | 色婷婷视频在线精品免费观看| 日本一区不卡在线观看| 果冻传媒精选麻豆白晶晶| 亚洲另类女同一二三区| 亚洲av熟女一区二区三区蜜桃| 精品亚洲av一区二区三区| 国产精品成人一区二区在线 | 欧美又黑又粗大又硬又爽| 亚洲综合色婷婷七月丁香| 亚洲男女性生活免费视频| 国产成人精品视频一区二区三区| 精品少妇人妻av一区二区蜜桃| 国产又粗又猛又大爽又黄同志| 欧美成人免费一级特黄| 亚洲午夜精品视频在线| 欧洲一区二区三区蜜桃| 国产三级欧美三级日韩三级| 一区二区三区亚洲天堂| 天堂av一区一区一区| 免费观看一级欧美大片| 日韩欧美综合中文字幕 | 日本丁香婷婷欧美激情| 蜜桃av人妻精品一区二区三区| 在线一区二区免费的视频| 风韵人妻丰满熟妇老熟女av| 日本女优一色一伦一区二区三区 | 欧美一区二区口爆吞精| 欧美一级日韩中文字幕| 中文精品人妻一区二区| 精品国自产拍天天青青草原| 99久久精品久久免费| 欧美一区二区三区性视频| 国产免费人成视频尤物| 成人午夜在线视频观看| 福利一区二区视频在线| 国产一区二区三区av在线| 色哟哟国产精品免费视频| 日韩国产欧美中文字幕| 国产精品国产亚洲看不卡| 91精品视频免费播放|