第6章視圖和索引操作_第1頁(yè)
第6章視圖和索引操作_第2頁(yè)
第6章視圖和索引操作_第3頁(yè)
第6章視圖和索引操作_第4頁(yè)
第6章視圖和索引操作_第5頁(yè)
已閱讀5頁(yè),還剩48頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第6章(4) 視圖和索引操作O r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫(kù) 基 礎(chǔ) 與庫(kù) 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程本章學(xué)習(xí)要點(diǎn)本章學(xué)習(xí)要點(diǎn)(1)視圖的基本知識(shí)。)視圖的基本知識(shí)。(2)OEM創(chuàng)建、修改、查看和刪除創(chuàng)建、修改、查看和刪除視圖視圖。(3)PL/SQL創(chuàng)建、修改、查看和刪除創(chuàng)建、修改、查看和刪除視圖視圖。(4)使用視圖。)使用視圖。(5)索引的概述。)索引的概述。(6)OEM創(chuàng)建、修改、查看和刪除創(chuàng)建、修改、查看和刪除索引索引。(7)創(chuàng)建、修改和刪除聚集。)創(chuàng)建、修改和刪除聚集。 O r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫(kù) 基 礎(chǔ)

2、與庫(kù) 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程6.1 視圖概述 視圖定義視圖定義l視圖(視圖(View)是從一個(gè)或多個(gè)表(其他視圖)中導(dǎo)出的表,其結(jié)構(gòu)和)是從一個(gè)或多個(gè)表(其他視圖)中導(dǎo)出的表,其結(jié)構(gòu)和數(shù)據(jù)是建立在對(duì)表的查詢基礎(chǔ)之上的。所以視圖不是真實(shí)存在的基礎(chǔ)表,數(shù)據(jù)是建立在對(duì)表的查詢基礎(chǔ)之上的。所以視圖不是真實(shí)存在的基礎(chǔ)表,而是一張?zhí)摫?。視圖所對(duì)應(yīng)的數(shù)據(jù)并不實(shí)際地以視圖結(jié)構(gòu)存儲(chǔ)在數(shù)據(jù)庫(kù)而是一張?zhí)摫?。視圖所對(duì)應(yīng)的數(shù)據(jù)并不實(shí)際地以視圖結(jié)構(gòu)存儲(chǔ)在數(shù)據(jù)庫(kù)中,而是存儲(chǔ)在視圖所引用的表中。中,而是存儲(chǔ)在視圖所引用的表中。l 視圖一經(jīng)定義便存儲(chǔ)在數(shù)據(jù)庫(kù)中,與其相對(duì)應(yīng)的數(shù)據(jù)并沒(méi)有像表一樣視圖一經(jīng)定義便存儲(chǔ)

3、在數(shù)據(jù)庫(kù)中,與其相對(duì)應(yīng)的數(shù)據(jù)并沒(méi)有像表一樣在數(shù)據(jù)庫(kù)中另外存儲(chǔ)一份,通過(guò)視圖看到的數(shù)據(jù)只是存放在基表中的數(shù)在數(shù)據(jù)庫(kù)中另外存儲(chǔ)一份,通過(guò)視圖看到的數(shù)據(jù)只是存放在基表中的數(shù)據(jù)。對(duì)視圖的操作與對(duì)表的操作一樣,可以對(duì)其進(jìn)行查詢、修改(有一據(jù)。對(duì)視圖的操作與對(duì)表的操作一樣,可以對(duì)其進(jìn)行查詢、修改(有一定的定的限制限制)和刪除。)和刪除。l 當(dāng)對(duì)視圖中的數(shù)據(jù)進(jìn)行修改時(shí),相應(yīng)的基表的數(shù)據(jù)也要發(fā)生變化,同當(dāng)對(duì)視圖中的數(shù)據(jù)進(jìn)行修改時(shí),相應(yīng)的基表的數(shù)據(jù)也要發(fā)生變化,同時(shí),如果基表的數(shù)據(jù)發(fā)生變化,則這種變化也可以自動(dòng)地反映到視圖中。時(shí),如果基表的數(shù)據(jù)發(fā)生變化,則這種變化也可以自動(dòng)地反映到視圖中。 O r a c l

4、eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫(kù) 基 礎(chǔ) 與庫(kù) 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程6.1 視圖概述 視圖特點(diǎn)視圖特點(diǎn)(1)視點(diǎn)集中,減少對(duì)象大?。┮朁c(diǎn)集中,減少對(duì)象大小視圖讓用戶能夠著重于他們所需要的特定數(shù)據(jù)或所負(fù)責(zé)的特定要求,如視圖讓用戶能夠著重于他們所需要的特定數(shù)據(jù)或所負(fù)責(zé)的特定要求,如用戶可以選擇特定行或特定列。用戶可以選擇特定行或特定列。(2)從異構(gòu)源組織數(shù)據(jù))從異構(gòu)源組織數(shù)據(jù)可以在連接兩個(gè)或多個(gè)表的復(fù)雜查詢的基礎(chǔ)上創(chuàng)建視圖,這樣可以將單可以在連接兩個(gè)或多個(gè)表的復(fù)雜查詢的基礎(chǔ)上創(chuàng)建視圖,這樣可以將單個(gè)表顯示給用戶。個(gè)表顯示給用戶。(3)隱藏?cái)?shù)據(jù)的復(fù)雜性,簡(jiǎn)化操作)隱藏?cái)?shù)

5、據(jù)的復(fù)雜性,簡(jiǎn)化操作視圖向用戶隱藏了數(shù)據(jù)庫(kù)設(shè)計(jì)的復(fù)雜性,這樣如果開(kāi)發(fā)者改變數(shù)據(jù)庫(kù)設(shè)視圖向用戶隱藏了數(shù)據(jù)庫(kù)設(shè)計(jì)的復(fù)雜性,這樣如果開(kāi)發(fā)者改變數(shù)據(jù)庫(kù)設(shè)計(jì),不會(huì)影響到用戶與數(shù)據(jù)庫(kù)交互。另外,用戶可將經(jīng)常使用的連接查計(jì),不會(huì)影響到用戶與數(shù)據(jù)庫(kù)交互。另外,用戶可將經(jīng)常使用的連接查詢、嵌套查詢或聯(lián)合查詢定義為視圖。詢、嵌套查詢或聯(lián)合查詢定義為視圖。(4)簡(jiǎn)化用戶權(quán)限的管理)簡(jiǎn)化用戶權(quán)限的管理可以將視圖的權(quán)限授予用戶,而不必將基表中某些列的權(quán)限授予用戶,可以將視圖的權(quán)限授予用戶,而不必將基表中某些列的權(quán)限授予用戶,這樣就簡(jiǎn)化了用戶權(quán)限的定義。這樣就簡(jiǎn)化了用戶權(quán)限的定義。 O r a c l eO r a c

6、l e 數(shù) 據(jù)數(shù) 據(jù) 庫(kù) 基 礎(chǔ) 與庫(kù) 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程6.2.1 課堂案例1使用OEM管理視圖 掌握Oracle中應(yīng)用OEM創(chuàng)建視圖、修改視圖、查看視圖和刪除視圖的方法和基本步驟 。案例學(xué)習(xí)目標(biāo)案例學(xué)習(xí)目標(biāo) 視圖的定義、OEM創(chuàng)建視圖、OEM修改視圖、OEM查看視圖和OEM刪除視圖 。案例知識(shí)要點(diǎn)案例知識(shí)要點(diǎn) O r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫(kù) 基 礎(chǔ) 與庫(kù) 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程6.2.1 課堂案例1使用OEM管理視圖案例完成步驟案例完成步驟 1使用使用OEM創(chuàng)建視圖創(chuàng)建視圖 (1)進(jìn)入)進(jìn)入OEM后,依次選擇后,依次選

7、擇“方案方案”、“視圖視圖”,進(jìn),進(jìn)入入“視圖視圖” 頁(yè)面頁(yè)面 (2)單擊)單擊“創(chuàng)建創(chuàng)建”按鈕,進(jìn)入按鈕,進(jìn)入“創(chuàng)建視圖創(chuàng)建視圖”頁(yè)面頁(yè)面 O r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫(kù) 基 礎(chǔ) 與庫(kù) 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程O(píng) r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫(kù) 基 礎(chǔ) 與庫(kù) 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程6.2.1 課堂案例1使用OEM管理視圖案例完成步驟案例完成步驟 2使用使用OEM修改視圖修改視圖 (1)重命名視圖)重命名視圖重命名視圖在重命名視圖在OEM中不能直接完成,只能先刪除原有的中不能直接完成,只能先刪除原有的

8、視圖,再新建對(duì)應(yīng)的視圖。視圖,再新建對(duì)應(yīng)的視圖。(2)修改視圖定義)修改視圖定義 (a)在指定方案的)在指定方案的“視圖視圖”頁(yè)面中,選擇要編輯的視頁(yè)面中,選擇要編輯的視圖,單擊圖,單擊“編輯編輯”按鈕,進(jìn)入按鈕,進(jìn)入“編輯視圖編輯視圖”頁(yè)面頁(yè)面 (b)在)在“查詢文本查詢文本”中可以完成視圖對(duì)應(yīng)的中可以完成視圖對(duì)應(yīng)的SQL語(yǔ)句語(yǔ)句的修改操作,修改完成后,單擊的修改操作,修改完成后,單擊“編譯編譯”按鈕可以進(jìn)行按鈕可以進(jìn)行編譯編譯 (c)在完成視圖編輯和編譯后,單擊)在完成視圖編輯和編譯后,單擊“應(yīng)用應(yīng)用”按鈕,按鈕,完成對(duì)指定視圖的修改操作。完成對(duì)指定視圖的修改操作。 O r a c l e

9、O r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫(kù) 基 礎(chǔ) 與庫(kù) 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程6.2.1 課堂案例1使用OEM管理視圖案例完成步驟案例完成步驟 3使用使用OEM查看視圖查看視圖 (1)在指定方案的)在指定方案的“視圖視圖”頁(yè)面中,選擇要編輯的視頁(yè)面中,選擇要編輯的視圖,單擊圖,單擊“查看查看”按鈕,進(jìn)入按鈕,進(jìn)入“查看視圖查看視圖”頁(yè)面頁(yè)面 (2)在視圖的)在視圖的“查看查看”頁(yè)面中,可以查看到視圖的名頁(yè)面中,可以查看到視圖的名稱、視圖的方案、別名、視圖狀態(tài)和查詢文本等稱、視圖的方案、別名、視圖狀態(tài)和查詢文本等 O r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫(kù)

10、基 礎(chǔ) 與庫(kù) 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程O(píng) r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫(kù) 基 礎(chǔ) 與庫(kù) 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程6.2.1 課堂案例1使用OEM管理視圖案例完成步驟案例完成步驟 4使用使用OEM刪除視圖刪除視圖 (1)在指定方案的)在指定方案的“視圖視圖”頁(yè)面中,選擇要編輯的視頁(yè)面中,選擇要編輯的視圖,單擊圖,單擊“刪除刪除”按鈕,進(jìn)入按鈕,進(jìn)入“確認(rèn)刪除確認(rèn)刪除”頁(yè)面頁(yè)面 (2)單擊)單擊“是是”按鈕,將刪除指定的視圖按鈕,將刪除指定的視圖 O r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫(kù) 基 礎(chǔ) 與庫(kù) 基 礎(chǔ) 與 應(yīng)

11、 用 教 程應(yīng) 用 教 程6.2.2 課堂案例2使用PL/SQL管理視圖 掌握Oracle中應(yīng)用PL/SQL創(chuàng)建視圖、修改視圖、查看視圖和刪除視圖的基本語(yǔ)句和使用方法 。案例學(xué)習(xí)目標(biāo)案例學(xué)習(xí)目標(biāo) PL/SQL創(chuàng)建簡(jiǎn)單視圖、PL/SQL創(chuàng)建只讀視圖、PL/SQL創(chuàng)建檢查視圖、PL/SQL創(chuàng)建連接視圖、PL/SQL創(chuàng)建復(fù)雜視圖、PL/SQL創(chuàng)建強(qiáng)制視圖、PL/SQL修改視圖、PL/SQL查看視圖和PL/SQL刪除視圖 。案例知識(shí)要點(diǎn)案例知識(shí)要點(diǎn) O r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫(kù) 基 礎(chǔ) 與庫(kù) 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程v CreateCreate or

12、replaceforcenoforce or replaceforcenoforce view view 用戶方用戶方案案. ( (列名列名, n) n) asas select select 語(yǔ)句語(yǔ)句 with check option constraint with check option constraint 約束名約束名 with read only with read onlyO r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫(kù) 基 礎(chǔ) 與庫(kù) 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程6.2.2 課堂案例2使用PL/SQL管理視圖案例完成步驟案例完成步驟 1使用使用PL/S

13、QL創(chuàng)建視圖創(chuàng)建視圖 (1)創(chuàng)建簡(jiǎn)單視圖。)創(chuàng)建簡(jiǎn)單視圖。l【例例2-1】 經(jīng)常需要了解經(jīng)常需要了解“熱點(diǎn)熱點(diǎn)”商品的商品號(hào)商品的商品號(hào)(g_ID)、商品名稱()、商品名稱(g_Name)、類別號(hào)()、類別號(hào)(t_ID)、商)、商品價(jià)格(品價(jià)格(g_Price)、商品折扣()、商品折扣(g_Discount)和商品數(shù))和商品數(shù)量(量(g_Number)信息,可以創(chuàng)建一個(gè))信息,可以創(chuàng)建一個(gè)“熱點(diǎn)熱點(diǎn)”商品的視商品的視圖。圖。CREATE OR REPLACE VIEW SCOTT.vw_HotGoodsASSELECT g_ID AS 商品號(hào)商品號(hào), g_Name AS 商品名稱商品名稱, t

14、_ID AS 類別號(hào)類別號(hào), g_Price AS 價(jià)格價(jià)格, g_Discount AS 折扣折扣, g_Number AS 數(shù)量數(shù)量FROM SCOTT.GoodsWHERE g_Status = 熱點(diǎn)熱點(diǎn);O r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫(kù) 基 礎(chǔ) 與庫(kù) 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程6.2.2 課堂案例2使用PL/SQL管理視圖案例完成步驟案例完成步驟 (2)創(chuàng)建只讀視圖。)創(chuàng)建只讀視圖。在創(chuàng)建視圖時(shí),可以使用在創(chuàng)建視圖時(shí),可以使用WITH READ ONLY選項(xiàng)創(chuàng)建只讀選項(xiàng)創(chuàng)建只讀視圖。視圖。l【例例2-2】 經(jīng)常需要了解員工的編號(hào)(經(jīng)常需要了解

15、員工的編號(hào)(e_ID)、名稱)、名稱(e_Name)、家庭地址()、家庭地址(e_Address)、郵政編碼)、郵政編碼(e_PostCode)和手機(jī)號(hào)碼()和手機(jī)號(hào)碼(e_Mobile)信息,要求能夠)信息,要求能夠通過(guò)視圖來(lái)查詢這些信息(通過(guò)視圖來(lái)查詢這些信息(但不能通過(guò)視圖更改這些信息但不能通過(guò)視圖更改這些信息)。)。CREATE VIEW SCOTT.vw_emp_readonlyASSELECT e_ID,e_Name,e_Address,e_PostCode,e_MobileFROM SCOTT.employeesWITH READ ONLY;O r a c l eO r a c

16、l e 數(shù) 據(jù)數(shù) 據(jù) 庫(kù) 基 礎(chǔ) 與庫(kù) 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程6.2.2 課堂案例2使用PL/SQL管理視圖案例完成步驟案例完成步驟 (3)創(chuàng)建檢查視圖。)創(chuàng)建檢查視圖。在創(chuàng)建視圖時(shí),可以使用在創(chuàng)建視圖時(shí),可以使用WITH CHECK OPTION選項(xiàng)創(chuàng)建選項(xiàng)創(chuàng)建檢查視圖。檢查視圖。l【例例2-3】 經(jīng)常需要了解海爾公司商品的商品號(hào)(經(jīng)常需要了解海爾公司商品的商品號(hào)(g_ID)、)、商品名稱(商品名稱(g_Name)、商品價(jià)格()、商品價(jià)格(g_Price)、商品折扣)、商品折扣(g_Discount)和商品數(shù)量()和商品數(shù)量(g_Number)信息,可以創(chuàng))信息,可以創(chuàng)建一

17、個(gè)關(guān)于海爾商品的視圖。建一個(gè)關(guān)于海爾商品的視圖。CREATE OR REPLACE VIEW SCOTT.vw_HaierGoodsASSELECT g_ID, g_Name, g_Price,g_Discount,g_NumberFROM SCOTT.GoodsWHERE g_Name LIKE %海爾海爾%WITH CHECK OPTION;O r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫(kù) 基 礎(chǔ) 與庫(kù) 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程6.2.2 課堂案例2使用PL/SQL管理視圖案例完成步驟案例完成步驟 (4)創(chuàng)建連接視圖)創(chuàng)建連接視圖連接視圖是指基于多個(gè)表所創(chuàng)建的

18、視圖,即定義視圖的查詢連接視圖是指基于多個(gè)表所創(chuàng)建的視圖,即定義視圖的查詢是一個(gè)連接查詢。使用連接視圖的主要目的是為了簡(jiǎn)化連接是一個(gè)連接查詢。使用連接視圖的主要目的是為了簡(jiǎn)化連接查詢。查詢。l【例例2-4】 經(jīng)常需要了解商品的商品號(hào)(經(jīng)常需要了解商品的商品號(hào)(g_ID)、商品名)、商品名稱(稱(g_Name)、類別名稱()、類別名稱(t_Name)和商品價(jià)格)和商品價(jià)格(g_Price)信息,可以創(chuàng)建一個(gè)關(guān)于這類商品的視圖。)信息,可以創(chuàng)建一個(gè)關(guān)于這類商品的視圖。CREATE OR REPLACE VIEW SCOTT.vw_TNameGoodsASSELECT g_ID, g_Name, t

19、_Name, g_PriceFROM SCOTT.GoodsJOIN TypesON Goods.t_ID=Types.t_IDWITH CHECK OPTION O r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫(kù) 基 礎(chǔ) 與庫(kù) 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程6.2.2 課堂案例2使用PL/SQL管理視圖案例完成步驟案例完成步驟 (5)創(chuàng)建復(fù)雜視圖。)創(chuàng)建復(fù)雜視圖。復(fù)雜視圖是指包含函數(shù)、表達(dá)式或分組數(shù)據(jù)的視圖,主要目復(fù)雜視圖是指包含函數(shù)、表達(dá)式或分組數(shù)據(jù)的視圖,主要目的是為了簡(jiǎn)化查詢。的是為了簡(jiǎn)化查詢。l【例例2-5】 經(jīng)常需要了解某一類商品的類別號(hào)(經(jīng)常需要了解某一類商

20、品的類別號(hào)(t_ID)和)和該類商品的最高價(jià)格信息,可以創(chuàng)建一個(gè)關(guān)于這類商品的視該類商品的最高價(jià)格信息,可以創(chuàng)建一個(gè)關(guān)于這類商品的視圖。圖。CREATE OR REPLACE VIEW SCOTT.vw_MaxPriceGoodsASSELECT t_ID, Max(g_Price) AS MaxPriceFROM SCOTT.GoodsGROUP BY t_IDO r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫(kù) 基 礎(chǔ) 與庫(kù) 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程6.2.2 課堂案例2使用PL/SQL管理視圖案例完成步驟案例完成步驟 (6)強(qiáng)制創(chuàng)建視圖)強(qiáng)制創(chuàng)建視圖正常情況下,

21、如果基表不存在,創(chuàng)建視圖就會(huì)失敗。但是可正常情況下,如果基表不存在,創(chuàng)建視圖就會(huì)失敗。但是可以使用以使用FORCE選項(xiàng)強(qiáng)制創(chuàng)建視圖(前提是創(chuàng)建視圖的語(yǔ)句選項(xiàng)強(qiáng)制創(chuàng)建視圖(前提是創(chuàng)建視圖的語(yǔ)句沒(méi)有語(yǔ)法錯(cuò)誤),但此時(shí)該視圖處于失效狀態(tài)。沒(méi)有語(yǔ)法錯(cuò)誤),但此時(shí)該視圖處于失效狀態(tài)。l【例例2-6】創(chuàng)建并驗(yàn)證基于創(chuàng)建并驗(yàn)證基于Test表的強(qiáng)制視圖表的強(qiáng)制視圖(a)在)在Test表不存在的情況下,創(chuàng)建基于該表的強(qiáng)制視圖表不存在的情況下,創(chuàng)建基于該表的強(qiáng)制視圖vw_TestForce。CREATE FORCE VIEW SCOTT.vw_TestForceASSELECT c1,c2 FROM Test;以

22、上語(yǔ)句執(zhí)行后,視圖創(chuàng)建成功,但會(huì)出現(xiàn)警告信息,視圖以上語(yǔ)句執(zhí)行后,視圖創(chuàng)建成功,但會(huì)出現(xiàn)警告信息,視圖狀態(tài)為狀態(tài)為INVALID狀態(tài)。狀態(tài)。O r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫(kù) 基 礎(chǔ) 與庫(kù) 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程6.2.2 課堂案例2使用PL/SQL管理視圖案例完成步驟案例完成步驟 在實(shí)際應(yīng)用中,隨著查詢要求的改變和數(shù)據(jù)源的變化:在實(shí)際應(yīng)用中,隨著查詢要求的改變和數(shù)據(jù)源的變化:l更改視圖只是改變數(shù)據(jù)字典中對(duì)該視圖的定義信息,視圖更改視圖只是改變數(shù)據(jù)字典中對(duì)該視圖的定義信息,視圖的所有基礎(chǔ)對(duì)象都不會(huì)受到任何影響;的所有基礎(chǔ)對(duì)象都不會(huì)受到任何影響;l更

23、改視圖之后,依賴于該視圖的所有視圖和更改視圖之后,依賴于該視圖的所有視圖和PL/SQL程序程序都將變?yōu)槎紝⒆優(yōu)镮NVALID(失效失效)狀態(tài);狀態(tài);l如果以前的視圖中具有如果以前的視圖中具有WITH CHECK OPTION選項(xiàng),但是選項(xiàng),但是重定義時(shí)沒(méi)有使用該選項(xiàng),則以前的此選項(xiàng)將自動(dòng)刪除。重定義時(shí)沒(méi)有使用該選項(xiàng),則以前的此選項(xiàng)將自動(dòng)刪除。 2使用使用PL/SQL修改視圖修改視圖 (1)重命名視圖)重命名視圖l【例例2-7】重命名用戶方案重命名用戶方案SCOTT的視圖的視圖vw_MaxPriceGoods為為vw_MaxPrice。rename vw_MaxPriceGoods TO vw_

24、MaxPrice;O r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫(kù) 基 礎(chǔ) 與庫(kù) 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程6.2.2 課堂案例2使用PL/SQL管理視圖案例完成步驟案例完成步驟 2使用使用PL/SQL修改視圖修改視圖 (2)修改視圖定義)修改視圖定義l【例例2-8】 對(duì)于已創(chuàng)建的視圖對(duì)于已創(chuàng)建的視圖vw_HotGoods,現(xiàn)在需要?jiǎng)h,現(xiàn)在需要?jiǎng)h除其中的折扣(除其中的折扣(g_Discount)信息,使之僅包含商品的商)信息,使之僅包含商品的商品號(hào)(品號(hào)(g_ID)、商品名稱()、商品名稱(g_Name)、類別號(hào)()、類別號(hào)(t_ID)、)、價(jià)格(價(jià)格(g_Pric

25、e)和數(shù)量()和數(shù)量(g_Number)信息。)信息。CREATE OR REPLACE VIEW SCOTT.vw_HotGoodsASSELECT g_ID AS 商品號(hào)商品號(hào), g_Name AS 商品名稱商品名稱, t_ID AS 類別號(hào)類別號(hào), g_Price AS 價(jià)格價(jià)格, g_Number AS 數(shù)量數(shù)量FROM SCOTT.GoodsWHERE g_Status = 熱點(diǎn)熱點(diǎn)O r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫(kù) 基 礎(chǔ) 與庫(kù) 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程6.2.2 課堂案例2使用PL/SQL管理視圖案例完成步驟案例完成步驟 (3)重新編譯

26、視圖)重新編譯視圖可以使用可以使用PL/SQL的的ALTER VIEW語(yǔ)句重新編譯視圖。語(yǔ)句重新編譯視圖。ALTER VIEW 視圖名視圖名 COMPILE;當(dāng)視圖依賴的基表改變后,視圖會(huì)當(dāng)視圖依賴的基表改變后,視圖會(huì)“失效失效”。為了確保這種。為了確保這種改變改變“不影響不影響”視圖和依賴于該視圖的其他對(duì)象,應(yīng)該使用視圖和依賴于該視圖的其他對(duì)象,應(yīng)該使用ALTER VIEW 語(yǔ)句明確的重新編譯該視圖,從而在運(yùn)行視語(yǔ)句明確的重新編譯該視圖,從而在運(yùn)行視圖前發(fā)現(xiàn)重新編譯的錯(cuò)誤。視圖被重新編譯后,若發(fā)現(xiàn)錯(cuò)誤,圖前發(fā)現(xiàn)重新編譯的錯(cuò)誤。視圖被重新編譯后,若發(fā)現(xiàn)錯(cuò)誤,則依賴該視圖的對(duì)象也會(huì)失效;若沒(méi)有錯(cuò)

27、誤,視圖會(huì)變?yōu)閯t依賴該視圖的對(duì)象也會(huì)失效;若沒(méi)有錯(cuò)誤,視圖會(huì)變?yōu)椤坝行в行А薄?O r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫(kù) 基 礎(chǔ) 與庫(kù) 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程6.2.2 課堂案例2使用PL/SQL管理視圖案例完成步驟案例完成步驟 3使用使用PL/SQL查看視圖查看視圖Oracle的的PL/SQL語(yǔ)句提供了語(yǔ)句提供了DESCRIBE命令用來(lái)查看視圖命令用來(lái)查看視圖的信息,其基本語(yǔ)法格式為:的信息,其基本語(yǔ)法格式為:DESCRIBE 用戶方案用戶方案.視圖名視圖名;l【例例2-9】查看用戶方案查看用戶方案SCOTT的視圖的視圖VW_HOTGOODS的信息。的

28、信息。DESC SCOTT.VW_HOTGOODS;O r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫(kù) 基 礎(chǔ) 與庫(kù) 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程6.2.2 課堂案例2使用PL/SQL管理視圖案例完成步驟案例完成步驟 4使用使用PL/SQL刪除視圖刪除視圖Oracle的的PL/SQL語(yǔ)句提供了語(yǔ)句提供了DROP VIEW命令來(lái)刪除視圖命令來(lái)刪除視圖(必須保證當(dāng)前用戶具有(必須保證當(dāng)前用戶具有DROP ANY VIEW的系統(tǒng)權(quán)限),其的系統(tǒng)權(quán)限),其基本語(yǔ)法格式為:基本語(yǔ)法格式為:DROP VIEW 用戶方案用戶方案.視圖名視圖名;【例例2-10】刪除用戶方案刪除用戶方案

29、SCOTT的視圖的視圖.VW_TNAMEGOODS的信息。的信息。DROP VIEW SCOTT.VW_TNAMEGOODS;O r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫(kù) 基 礎(chǔ) 與庫(kù) 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程O(píng) r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫(kù) 基 礎(chǔ) 與庫(kù) 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程課堂案例3使用視圖 掌握Oracle中通過(guò)視圖進(jìn)行查詢和DML操作的基本方法和注意事項(xiàng) 。案例學(xué)習(xí)目標(biāo)案例學(xué)習(xí)目標(biāo) 通過(guò)視圖查詢數(shù)據(jù)、通過(guò)視圖添加數(shù)據(jù)、通過(guò)視圖修改數(shù)據(jù)、通過(guò)視圖刪除數(shù)據(jù) 。案例知識(shí)要點(diǎn)案例知識(shí)要點(diǎn) O r a c l e

30、O r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫(kù) 基 礎(chǔ) 與庫(kù) 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程課堂案例3使用視圖案例完成步驟案例完成步驟 6.3.1視圖查詢操作視圖查詢操作【例例3-1】 需要了解價(jià)格在需要了解價(jià)格在2000元以上的促銷(xiāo)商品信息,元以上的促銷(xiāo)商品信息,為了簡(jiǎn)化查詢操作,可以在視圖為了簡(jiǎn)化查詢操作,可以在視圖vw_SaleGoods中進(jìn)行中進(jìn)行查詢。查詢。SELECT * FROM SCOTT.vw_SaleGoodsWHERE 價(jià)格價(jià)格2000;視圖上執(zhí)行查詢操作的視圖上執(zhí)行查詢操作的步驟和原理步驟和原理:(1)將針對(duì)視圖的)將針對(duì)視圖的SQL語(yǔ)句與視圖的定義語(yǔ)句語(yǔ)句與視圖的

31、定義語(yǔ)句(保存在保存在數(shù)據(jù)字典中數(shù)據(jù)字典中)“合并合并”成一條成一條SQL語(yǔ)句;語(yǔ)句;(2)在內(nèi)存結(jié)構(gòu)的共享)在內(nèi)存結(jié)構(gòu)的共享SQL區(qū)中區(qū)中“解析解析”(并優(yōu)化并優(yōu)化)合并合并后的后的SQL語(yǔ)句;語(yǔ)句;(3)“執(zhí)行執(zhí)行”合并、解析后的合并、解析后的SQL語(yǔ)句。語(yǔ)句。 O r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫(kù) 基 礎(chǔ) 與庫(kù) 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程課堂案例3使用視圖案例完成步驟案例完成步驟 【例例3-2】 需要統(tǒng)計(jì)每類商品的平均價(jià)格(顯示類別名需要統(tǒng)計(jì)每類商品的平均價(jià)格(顯示類別名和該類別的平均價(jià)格),為了簡(jiǎn)化查詢操作,可以在視和該類別的平均價(jià)格),為了簡(jiǎn)化

32、查詢操作,可以在視圖圖vw_TNameGoods中進(jìn)行查詢。中進(jìn)行查詢。SELECT t_Name 類別名稱類別名稱, AVG(g_Price) 平均價(jià)格平均價(jià)格FROM SCOTT.vw_TNameGoodsGROUP BY t_Name; O r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫(kù) 基 礎(chǔ) 與庫(kù) 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程課堂案例3使用視圖案例完成步驟案例完成步驟 6.3.2 視圖視圖DML操作操作 當(dāng)向視圖中插入、修改或者刪除數(shù)據(jù)時(shí),實(shí)際上是對(duì)視當(dāng)向視圖中插入、修改或者刪除數(shù)據(jù)時(shí),實(shí)際上是對(duì)視圖所引用的基表執(zhí)行數(shù)據(jù)的插入、修改或者刪除操作對(duì)圖所引用的基表

33、執(zhí)行數(shù)據(jù)的插入、修改或者刪除操作對(duì)于這些操作,于這些操作,Oracle有如下的一些有如下的一些限制限制:l 用戶應(yīng)該具有操作視圖的權(quán)限,同時(shí)具有操作視圖所用戶應(yīng)該具有操作視圖的權(quán)限,同時(shí)具有操作視圖所引用的基表或其他視圖的權(quán)限;引用的基表或其他視圖的權(quán)限;l 在一個(gè)語(yǔ)句中,一次不能修改一個(gè)以上的視圖基表;在一個(gè)語(yǔ)句中,一次不能修改一個(gè)以上的視圖基表;l 對(duì)視圖中所有列的修改必須遵守視圖基表中所定義的對(duì)視圖中所有列的修改必須遵守視圖基表中所定義的各種數(shù)據(jù)約束條件;各種數(shù)據(jù)約束條件;l 不允許對(duì)視圖中的計(jì)算列進(jìn)行修改,也不允許對(duì)視圖不允許對(duì)視圖中的計(jì)算列進(jìn)行修改,也不允許對(duì)視圖定義中包含有統(tǒng)計(jì)函數(shù)

34、或者定義中包含有統(tǒng)計(jì)函數(shù)或者GROUP BY子句的視圖進(jìn)行子句的視圖進(jìn)行更新操作。更新操作。O r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫(kù) 基 礎(chǔ) 與庫(kù) 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程課堂案例3使用視圖案例完成步驟案例完成步驟 l【例例3-3】 通過(guò)視圖通過(guò)視圖vw_Users向表向表Users中增加一個(gè)用戶。中增加一個(gè)用戶。(1)首先建立一個(gè)視圖)首先建立一個(gè)視圖vw_Users,要求將,要求將Users表中的英表中的英文的列名換成漢字的列名。文的列名換成漢字的列名。CREATE OR REPLACE VIEW SCOTT.vw_UsersASSELECT u_ID

35、 AS 編號(hào)編號(hào), u_Name AS 用戶名用戶名, u_Type AS 用用戶組戶組, u_Password AS 用戶密碼用戶密碼FROM SCOTT.Users;(2)通過(guò)視圖)通過(guò)視圖vw_Users實(shí)現(xiàn)記錄的添加。實(shí)現(xiàn)記錄的添加。INSERT INTO SCOTT.vw_UsersVALUES(05,view,普通普通,view);O r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫(kù) 基 礎(chǔ) 與庫(kù) 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程課堂案例3使用視圖案例完成步驟案例完成步驟 l【例例3-4】 通過(guò)視圖通過(guò)視圖vw_Users將用戶將用戶“amy”的所屬用戶的所屬用戶

36、組修改為組修改為“查詢查詢”。UPDATE SCOTT.vw_UsersSET 用戶組用戶組=查詢查詢WHERE 用戶名用戶名=amy;l【例例3-5】試著通過(guò)視圖試著通過(guò)視圖vw_emp_readonly(視圖定義見(jiàn)(視圖定義見(jiàn)6.2.2)刪除名稱為)刪除名稱為“劉麗麗劉麗麗”的員工。的員工。DELETE FROM SCOTT.vw_emp_readonlyWHERE e_Name=劉麗麗劉麗麗;語(yǔ)句執(zhí)行后,將會(huì)顯示語(yǔ)句執(zhí)行后,將會(huì)顯示“無(wú)法對(duì)只讀視圖進(jìn)行無(wú)法對(duì)只讀視圖進(jìn)行DML操作操作”的的錯(cuò)誤提示錯(cuò)誤提示 O r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫(kù) 基 礎(chǔ) 與庫(kù) 基

37、礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程6.4 索引概述 索引概念索引概念l索引(索引(Index)是一個(gè))是一個(gè)單獨(dú)的單獨(dú)的、物理的物理的數(shù)據(jù)結(jié)構(gòu),在這個(gè)數(shù)據(jù)結(jié)構(gòu)中包數(shù)據(jù)結(jié)構(gòu),在這個(gè)數(shù)據(jù)結(jié)構(gòu)中包括表中一列或若干列的值以及相應(yīng)的指向表中物理標(biāo)識(shí)這些值的數(shù)據(jù)頁(yè)括表中一列或若干列的值以及相應(yīng)的指向表中物理標(biāo)識(shí)這些值的數(shù)據(jù)頁(yè)的邏輯指針的集合。的邏輯指針的集合。l索引提供了數(shù)據(jù)庫(kù)中索引提供了數(shù)據(jù)庫(kù)中編排表中數(shù)據(jù)編排表中數(shù)據(jù)的內(nèi)部方法。索引依賴于數(shù)據(jù)庫(kù)的的內(nèi)部方法。索引依賴于數(shù)據(jù)庫(kù)的表,作為表的一個(gè)組成部分,一旦創(chuàng)建后,由數(shù)據(jù)庫(kù)系統(tǒng)自身進(jìn)行維護(hù)。表,作為表的一個(gè)組成部分,一旦創(chuàng)建后,由數(shù)據(jù)庫(kù)系統(tǒng)自身進(jìn)行維護(hù)

38、。一個(gè)表的存儲(chǔ)是由兩部分組成的,一部分用來(lái)存放表的數(shù)據(jù)頁(yè)面,另一一個(gè)表的存儲(chǔ)是由兩部分組成的,一部分用來(lái)存放表的數(shù)據(jù)頁(yè)面,另一部用來(lái)分存放索引頁(yè)面,索引就存放在索引頁(yè)面上。部用來(lái)分存放索引頁(yè)面,索引就存放在索引頁(yè)面上。l索引頁(yè)面相對(duì)于數(shù)據(jù)頁(yè)面來(lái)說(shuō)小得多。當(dāng)進(jìn)行數(shù)據(jù)檢索時(shí),系統(tǒng)先搜索引頁(yè)面相對(duì)于數(shù)據(jù)頁(yè)面來(lái)說(shuō)小得多。當(dāng)進(jìn)行數(shù)據(jù)檢索時(shí),系統(tǒng)先搜索索引頁(yè)面,從中找到所需數(shù)據(jù)的指針,再直接通過(guò)指針從數(shù)據(jù)頁(yè)面中索索引頁(yè)面,從中找到所需數(shù)據(jù)的指針,再直接通過(guò)指針從數(shù)據(jù)頁(yè)面中讀取數(shù)據(jù)。從某種程度上可以把數(shù)據(jù)庫(kù)看作一本讀取數(shù)據(jù)。從某種程度上可以把數(shù)據(jù)庫(kù)看作一本書(shū)書(shū),把索引看作書(shū)的,把索引看作書(shū)的目目錄錄,通過(guò)目

39、錄查找書(shū)中的信息,顯然比沒(méi)有目錄的書(shū)更方便、快捷。,通過(guò)目錄查找書(shū)中的信息,顯然比沒(méi)有目錄的書(shū)更方便、快捷。 O r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫(kù) 基 礎(chǔ) 與庫(kù) 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程6.4 索引概述 索引分類索引分類1B樹(shù)索引樹(shù)索引B樹(shù)索引是最常見(jiàn)的索引結(jié)構(gòu),默認(rèn)建立的索引就是這種類型的索引。樹(shù)索引是最常見(jiàn)的索引結(jié)構(gòu),默認(rèn)建立的索引就是這種類型的索引。 B樹(shù)索引是建立索引時(shí)默認(rèn)的索引類型,它可以是唯樹(shù)索引是建立索引時(shí)默認(rèn)的索引類型,它可以是唯一或非唯一的,也可以是單列或多列復(fù)合的。一或非唯一的,也可以是單列或多列復(fù)合的。B樹(shù)索樹(shù)索引的結(jié)構(gòu)是一個(gè)平衡

40、樹(shù),由根結(jié)點(diǎn)、樹(shù)枝結(jié)點(diǎn)和樹(shù)葉引的結(jié)構(gòu)是一個(gè)平衡樹(shù),由根結(jié)點(diǎn)、樹(shù)枝結(jié)點(diǎn)和樹(shù)葉結(jié)點(diǎn)組成,樹(shù)枝結(jié)點(diǎn)包含了索引列和指向下一層樹(shù)枝結(jié)點(diǎn)組成,樹(shù)枝結(jié)點(diǎn)包含了索引列和指向下一層樹(shù)枝結(jié)點(diǎn)的地址;樹(shù)葉結(jié)點(diǎn)包含了索引列和表中每個(gè)匹配結(jié)點(diǎn)的地址;樹(shù)葉結(jié)點(diǎn)包含了索引列和表中每個(gè)匹配行的行的ROWID。B樹(shù)索引在檢索高基數(shù)數(shù)據(jù)列(可區(qū)樹(shù)索引在檢索高基數(shù)數(shù)據(jù)列(可區(qū)分值不少于分值不少于200個(gè))時(shí)提供了最好的性能,可以避免個(gè))時(shí)提供了最好的性能,可以避免大規(guī)模的排序操作。大規(guī)模的排序操作。因此,因此,B樹(shù)索引一般用于樹(shù)索引一般用于OLTP系統(tǒng),對(duì)于低基數(shù)數(shù)據(jù)列(可區(qū)分值少于系統(tǒng),對(duì)于低基數(shù)數(shù)據(jù)列(可區(qū)分值少于200個(gè))就

41、個(gè))就不適合了。不適合了。 O r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫(kù) 基 礎(chǔ) 與庫(kù) 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程6.4 索引概述 索引分類索引分類2反向索引反向索引反向索引是反向索引是B樹(shù)索引的一個(gè)分支,它的設(shè)計(jì)是為了運(yùn)用在某些特定的環(huán)樹(shù)索引的一個(gè)分支,它的設(shè)計(jì)是為了運(yùn)用在某些特定的環(huán)境下。境下。 3降序索引降序索引降序索引是降序索引是B樹(shù)的另一個(gè)衍生物,它的變化就是列在索引中的存儲(chǔ)方式樹(shù)的另一個(gè)衍生物,它的變化就是列在索引中的存儲(chǔ)方式從升序變成了降序,在某些場(chǎng)合下降序索引將會(huì)起作用。創(chuàng)建降序索引從升序變成了降序,在某些場(chǎng)合下降序索引將會(huì)起作用。創(chuàng)建降序索引時(shí)

42、,時(shí),Oracle已經(jīng)把數(shù)據(jù)都按降序排好了已經(jīng)把數(shù)據(jù)都按降序排好了 。4位圖索引位圖索引位圖索引主要用于決策支持系統(tǒng)或靜態(tài)數(shù)據(jù),不支持行級(jí)鎖定。位圖索引主要用于決策支持系統(tǒng)或靜態(tài)數(shù)據(jù),不支持行級(jí)鎖定。 5函數(shù)索引函數(shù)索引基于函數(shù)的索引有索引計(jì)算列的能力,它易于使用并且提供計(jì)算好的值,基于函數(shù)的索引有索引計(jì)算列的能力,它易于使用并且提供計(jì)算好的值,在不修改應(yīng)用程序的邏輯上提高了查詢性能。在不修改應(yīng)用程序的邏輯上提高了查詢性能。 位圖索引可以是單列或多列復(fù)合的,但大多數(shù)基位圖索引可以是單列或多列復(fù)合的,但大多數(shù)基于單列。于單列。位圖索引的結(jié)構(gòu)實(shí)際上也是按位圖索引的結(jié)構(gòu)實(shí)際上也是按B樹(shù)組織的,樹(shù)組織

43、的,但樹(shù)葉塊是按照每個(gè)索引列的位圖(值為但樹(shù)葉塊是按照每個(gè)索引列的位圖(值為1或或0)組)組織的,而不是按數(shù)據(jù)行的織的,而不是按數(shù)據(jù)行的ROWID組織的。組織的。另外,位另外,位圖以一種壓縮格式存放,因此占用的磁盤(pán)空間比圖以一種壓縮格式存放,因此占用的磁盤(pán)空間比B樹(shù)樹(shù)索引要小得多。位圖索引一般用于決策支持系統(tǒng),尤索引要小得多。位圖索引一般用于決策支持系統(tǒng),尤其對(duì)于低基數(shù)數(shù)據(jù)列(可區(qū)分值少于其對(duì)于低基數(shù)數(shù)據(jù)列(可區(qū)分值少于200個(gè))特別適個(gè))特別適合。合。 簇索引是在簇中被表共享的索引,包括簇索引是在簇中被表共享的索引,包括B樹(shù)簇索引和樹(shù)簇索引和哈希簇索引。哈希簇索引。簇索引不同于常規(guī)索引,它在

44、索引中只簇索引不同于常規(guī)索引,它在索引中只存儲(chǔ)一次索引值,而不管索引列值在表中重復(fù)多少次。存儲(chǔ)一次索引值,而不管索引列值在表中重復(fù)多少次。簇索引一般用于在簇上執(zhí)行數(shù)據(jù)操作的場(chǎng)合。簇索引一般用于在簇上執(zhí)行數(shù)據(jù)操作的場(chǎng)合。 O r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫(kù) 基 礎(chǔ) 與庫(kù) 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程6.5.1 課堂案例4使用OEM管理索引 掌握Oracle中應(yīng)用OEM創(chuàng)建索引、修改索引、查看索引和刪除索引的方法和基本步驟 。案例學(xué)習(xí)目標(biāo)案例學(xué)習(xí)目標(biāo) OEM創(chuàng)建索引圖、索引的選擇、OEM修改索引、OEM查看索引和OEM刪除索引 。案例知識(shí)要點(diǎn)案例知識(shí)要點(diǎn) O

45、 r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫(kù) 基 礎(chǔ) 與庫(kù) 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程6.5.1 課堂案例4使用OEM管理索引案例完成步驟案例完成步驟 1使用使用OEM創(chuàng)建索引創(chuàng)建索引(1)進(jìn)入)進(jìn)入OEM后,依次選擇后,依次選擇“方案方案”、“索引索引”,進(jìn)入,進(jìn)入“索引頁(yè)面索引頁(yè)面” (2)單擊)單擊“創(chuàng)建創(chuàng)建”按鈕,進(jìn)入按鈕,進(jìn)入“創(chuàng)建索引創(chuàng)建索引”頁(yè)面,輸入頁(yè)面,輸入索引名稱(如:索引名稱(如:ix_GoodName),指定用戶方案為),指定用戶方案為SCOTT,并指定索引對(duì)應(yīng)的表和順序,并指定索引對(duì)應(yīng)的表和順序 (3)單擊)單擊“確定確定”按鈕,如果創(chuàng)建

46、的索引沒(méi)有錯(cuò)誤,進(jìn)按鈕,如果創(chuàng)建的索引沒(méi)有錯(cuò)誤,進(jìn)入入“確認(rèn)確認(rèn)”頁(yè)面,并顯示頁(yè)面,并顯示“已成功創(chuàng)建已成功創(chuàng)建 索引索引 SCOTT.IX_GOODNAME”消息,并顯示當(dāng)前方案消息,并顯示當(dāng)前方案(SCOTT)中的索引列表)中的索引列表 O r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫(kù) 基 礎(chǔ) 與庫(kù) 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程6.5.1 課堂案例4使用OEM管理索引案例完成步驟案例完成步驟 2使用使用OEM修改索引修改索引 3使用使用OEM查看和刪除索引查看和刪除索引 O r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫(kù) 基 礎(chǔ) 與庫(kù) 基 礎(chǔ) 與 應(yīng)

47、用 教 程應(yīng) 用 教 程6.5.1 課堂案例4使用OEM管理索引案例完成步驟案例完成步驟 O r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫(kù) 基 礎(chǔ) 與庫(kù) 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程6.5.2 課堂案例5使用PL/SQL管理索引 掌握Oracle中應(yīng)用PL/SQL創(chuàng)建索引、修改索引、查看索引和刪除索引的方法和基本步驟 。案例學(xué)習(xí)目標(biāo)案例學(xué)習(xí)目標(biāo) CREATE INDEX 創(chuàng)建索引、索引的選擇、ALTER INDEX修改索引、通過(guò)數(shù)據(jù)字典查看索引和DROP INDEX刪除索引 。案例知識(shí)要點(diǎn)案例知識(shí)要點(diǎn) O r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫(kù) 基

48、 礎(chǔ) 與庫(kù) 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程6.5.1 課堂案例4使用OEM管理索引案例完成步驟案例完成步驟 2使用使用OEM修改索引修改索引 3使用使用OEM查看和刪除索引查看和刪除索引 O r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫(kù) 基 礎(chǔ) 與庫(kù) 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程6.5.2 課堂案例5使用PL/SQL管理索引案例完成步驟案例完成步驟 1使用使用PL/SQL創(chuàng)建索引創(chuàng)建索引 【例例4-1】 創(chuàng)建關(guān)于員工表的員工名稱列的唯一索引。創(chuàng)建關(guān)于員工表的員工名稱列的唯一索引。CREATE UNIQUE INDEX SCOTT.ix_EmpName ON

49、SCOTT.Employees(e_Name);【例例4-2】建立關(guān)于商品表的商品類別編號(hào)列的索引。建立關(guān)于商品表的商品類別編號(hào)列的索引。CREATE INDEX SCOTT.ix_TypeIDON SCOTT.Goods(t_ID);【例例4-3】建立關(guān)于訂單明細(xì)表的訂單編號(hào)列和產(chǎn)品編號(hào)建立關(guān)于訂單明細(xì)表的訂單編號(hào)列和產(chǎn)品編號(hào)列的復(fù)合索引。列的復(fù)合索引。CREATE INDEX SCOTT.ix_OID_GIDON SCOTT.ORDERDETAILS(O_ID,G_ID);O r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫(kù) 基 礎(chǔ) 與庫(kù) 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程

50、6.5.2 課堂案例5使用PL/SQL管理索引案例完成步驟案例完成步驟 2使用使用PL/SQL修改索引修改索引 【例例4-4】修改索引修改索引ix_EmpName,重新調(diào)整,重新調(diào)整INITRANS和和MAXTRANS參數(shù)的值。參數(shù)的值。ALTER INDEX SCOTT.ix_EmpNameINITRANS5MAXTRANS10;3使用使用PL/SQL刪除索引刪除索引利用利用DROP INDEX 命令可以刪除一個(gè)或多個(gè)當(dāng)前數(shù)據(jù)庫(kù)命令可以刪除一個(gè)或多個(gè)當(dāng)前數(shù)據(jù)庫(kù)中的索引。其語(yǔ)句格式如下:中的索引。其語(yǔ)句格式如下:DROP INDEX 用戶方案用戶方案. , . n【例例4-5】刪除員工表中為員

51、工名稱創(chuàng)建的唯一索引刪除員工表中為員工名稱創(chuàng)建的唯一索引IX_EMPNAME。DROP INDEX SCOTT.EMPLOYEES.IX_EMPNAME;O r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫(kù) 基 礎(chǔ) 與庫(kù) 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程6.5.2 課堂案例5使用PL/SQL管理索引案例完成步驟案例完成步驟 4查看索引查看索引 O r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫(kù) 基 礎(chǔ) 與庫(kù) 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程課堂案例6聚集操作 掌握Oracle中應(yīng)用聚集的基本概念、創(chuàng)建聚集、修改聚集和刪除聚集的方法和基本步驟 。案例學(xué)習(xí)目標(biāo)

52、案例學(xué)習(xí)目標(biāo) 創(chuàng)建聚集本身、創(chuàng)建聚集中的表、創(chuàng)建聚集鍵上的索引、修改聚集和刪除聚集 。案例知識(shí)要點(diǎn)案例知識(shí)要點(diǎn) O r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫(kù) 基 礎(chǔ) 與庫(kù) 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程課堂案例6聚集操作聚集概述聚集概述 1索引聚集索引聚集索引聚集是保存數(shù)據(jù)表的一種可選方案。索引聚集在同一個(gè)索引聚集是保存數(shù)據(jù)表的一種可選方案。索引聚集在同一個(gè)數(shù)據(jù)塊中將多個(gè)不同表的相關(guān)行存儲(chǔ)在一起,從而改善相關(guān)數(shù)據(jù)塊中將多個(gè)不同表的相關(guān)行存儲(chǔ)在一起,從而改善相關(guān)操作的存取時(shí)間。共享公共列的表可以聚集在該列的周?chē)?,操作的存取時(shí)間。共享公共列的表可以聚集在該列的周?chē)?,從?/p>

53、加速對(duì)這些行的存取。索引聚集有利于聚集數(shù)據(jù)上的連從而加速對(duì)這些行的存取。索引聚集有利于聚集數(shù)據(jù)上的連接,因?yàn)樗械臄?shù)據(jù)在一個(gè)接,因?yàn)樗械臄?shù)據(jù)在一個(gè)I/O操作中被檢索。操作中被檢索。2哈希聚集哈希聚集哈希聚集類似于索引聚集,但它使用哈希函數(shù)而非索引來(lái)引哈希聚集類似于索引聚集,但它使用哈希函數(shù)而非索引來(lái)引用聚集鍵。哈希聚集在同一數(shù)據(jù)塊中將相關(guān)的行存儲(chǔ)在一起,用聚集鍵。哈希聚集在同一數(shù)據(jù)塊中將相關(guān)的行存儲(chǔ)在一起,依據(jù)是這些行的哈希函數(shù)結(jié)果。在創(chuàng)建哈希聚集時(shí),依據(jù)是這些行的哈希函數(shù)結(jié)果。在創(chuàng)建哈希聚集時(shí),Oracle為聚集的數(shù)據(jù)段分配初始數(shù)量的存儲(chǔ)空間。為聚集的數(shù)據(jù)段分配初始數(shù)量的存儲(chǔ)空間。O r

54、a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫(kù) 基 礎(chǔ) 與庫(kù) 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程課堂案例6聚集操作案例完成步驟案例完成步驟- -創(chuàng)建聚集創(chuàng)建聚集 1創(chuàng)建聚集本身創(chuàng)建聚集本身【例例5-1】創(chuàng)建一個(gè)包含創(chuàng)建一個(gè)包含column0l的聚集的聚集testclu。CREATE CLUSTER SCOTT.testclu(column0l VARCHAR(20);2創(chuàng)建聚集中的表創(chuàng)建聚集中的表 【例例5-2】創(chuàng)建聚集為創(chuàng)建聚集為testclu的兩個(gè)測(cè)試表的兩個(gè)測(cè)試表testa和和testb。CREATE TABLE SCOTT.testa(a01 VARCHAR(20),a02 VARCHAR(20)CLUSTER SCOTT.testclu(a01);CREATE TABLE SCOTT.testb(b01 VARCHAR(20),b02 VARCHAR(20)CLUSTER SCOTT.testclu(b01); O r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫(kù) 基 礎(chǔ) 與庫(kù) 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程課堂案例6聚集操作案例完成步驟案例完成步驟 3創(chuàng)建

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論