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

下載本文檔

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

文檔簡介

1、第6章(4) 視圖和索引操作O r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫 基 礎(chǔ) 與庫 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程本章學(xué)習(xí)要點(diǎn)本章學(xué)習(xí)要點(diǎn)(1)視圖的基本知識。)視圖的基本知識。(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ù) 庫 基 礎(chǔ)

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

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

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

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

6、l e 數(shù) 據(jù)數(shù) 據(jù) 庫 基 礎(chǔ) 與庫 基 礎(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刪除視圖 。案例知識要點(diǎn)案例知識要點(diǎn) O r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫 基 礎(chǔ) 與庫 基 礎(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)入入“視圖視圖” 頁面頁面 (2)單擊)單擊“創(chuàng)建創(chuàng)建”按鈕,進(jìn)入按鈕,進(jìn)入“創(chuàng)建視圖創(chuàng)建視圖”頁面頁面 O r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫 基 礎(chǔ) 與庫 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程O r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫 基 礎(chǔ) 與庫 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程6.2.1 課堂案例1使用OEM管理視圖案例完成步驟案例完成步驟 2使用使用OEM修改視圖修改視圖 (1)重命名視圖)重命名視圖重命名視圖在重命名視圖在OEM中不能直接完成,只能先刪除原有的中不能直接完成,只能先刪除原有的

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

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

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

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

12、replaceforcenoforce or replaceforcenoforce view view 用戶方用戶方案案. ( (列名列名, n) n) asas select select 語句語句 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ù) 庫 基 礎(chǔ) 與庫 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程6.2.2 課堂案例2使用PL/SQL管理視圖案例完成步驟案例完成步驟 1使用使用PL/S

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

14、_ID AS 類別號類別號, g_Price AS 價格價格, 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ù) 庫 基 礎(chǔ) 與庫 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程6.2.2 課堂案例2使用PL/SQL管理視圖案例完成步驟案例完成步驟 (2)創(chuàng)建只讀視圖。)創(chuàng)建只讀視圖。在創(chuàng)建視圖時,可以使用在創(chuàng)建視圖時,可以使用WITH READ ONLY選項(xiàng)創(chuàng)建只讀選項(xiàng)創(chuàng)建只讀視圖。視圖。l【例例2-2】 經(jīng)常需要了解員工的編號(經(jīng)常需要了解

15、員工的編號(e_ID)、名稱)、名稱(e_Name)、家庭地址()、家庭地址(e_Address)、郵政編碼)、郵政編碼(e_PostCode)和手機(jī)號碼()和手機(jī)號碼(e_Mobile)信息,要求能夠)信息,要求能夠通過視圖來查詢這些信息(通過視圖來查詢這些信息(但不能通過視圖更改這些信息但不能通過視圖更改這些信息)。)。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ù) 庫 基 礎(chǔ) 與庫 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程6.2.2 課堂案例2使用PL/SQL管理視圖案例完成步驟案例完成步驟 (3)創(chuàng)建檢查視圖。)創(chuàng)建檢查視圖。在創(chuàng)建視圖時,可以使用在創(chuàng)建視圖時,可以使用WITH CHECK OPTION選項(xiàng)創(chuàng)建選項(xiàng)創(chuàng)建檢查視圖。檢查視圖。l【例例2-3】 經(jīng)常需要了解海爾公司商品的商品號(經(jīng)常需要了解海爾公司商品的商品號(g_ID)、)、商品名稱(商品名稱(g_Name)、商品價格()、商品價格(g_Price)、商品折扣)、商品折扣(g_Discount)和商品數(shù)量()和商品數(shù)量(g_Number)信息,可以創(chuàng))信息,可以創(chuàng)建一

17、個關(guān)于海爾商品的視圖。建一個關(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ù) 庫 基 礎(chǔ) 與庫 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程6.2.2 課堂案例2使用PL/SQL管理視圖案例完成步驟案例完成步驟 (4)創(chuàng)建連接視圖)創(chuàng)建連接視圖連接視圖是指基于多個表所創(chuàng)建的

18、視圖,即定義視圖的查詢連接視圖是指基于多個表所創(chuàng)建的視圖,即定義視圖的查詢是一個連接查詢。使用連接視圖的主要目的是為了簡化連接是一個連接查詢。使用連接視圖的主要目的是為了簡化連接查詢。查詢。l【例例2-4】 經(jīng)常需要了解商品的商品號(經(jīng)常需要了解商品的商品號(g_ID)、商品名)、商品名稱(稱(g_Name)、類別名稱()、類別名稱(t_Name)和商品價格)和商品價格(g_Price)信息,可以創(chuàng)建一個關(guān)于這類商品的視圖。)信息,可以創(chuàng)建一個關(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ù) 庫 基 礎(chǔ) 與庫 基 礎(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ù)的視圖,主要目的是為了簡化查詢。的是為了簡化查詢。l【例例2-5】 經(jīng)常需要了解某一類商品的類別號(經(jīng)常需要了解某一類商

20、品的類別號(t_ID)和)和該類商品的最高價格信息,可以創(chuàng)建一個關(guān)于這類商品的視該類商品的最高價格信息,可以創(chuàng)建一個關(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ù) 庫 基 礎(chǔ) 與庫 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程6.2.2 課堂案例2使用PL/SQL管理視圖案例完成步驟案例完成步驟 (6)強(qiáng)制創(chuàng)建視圖)強(qiáng)制創(chuàng)建視圖正常情況下,

21、如果基表不存在,創(chuàng)建視圖就會失敗。但是可正常情況下,如果基表不存在,創(chuàng)建視圖就會失敗。但是可以使用以使用FORCE選項(xiàng)強(qiáng)制創(chuàng)建視圖(前提是創(chuàng)建視圖的語句選項(xiàng)強(qiáng)制創(chuàng)建視圖(前提是創(chuàng)建視圖的語句沒有語法錯誤),但此時該視圖處于失效狀態(tài)。沒有語法錯誤),但此時該視圖處于失效狀態(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、上語句執(zhí)行后,視圖創(chuàng)建成功,但會出現(xiàn)警告信息,視圖以上語句執(zhí)行后,視圖創(chuàng)建成功,但會出現(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ù) 庫 基 礎(chǔ) 與庫 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程6.2.2 課堂案例2使用PL/SQL管理視圖案例完成步驟案例完成步驟 在實(shí)際應(yīng)用中,隨著查詢要求的改變和數(shù)據(jù)源的變化:在實(shí)際應(yīng)用中,隨著查詢要求的改變和數(shù)據(jù)源的變化:l更改視圖只是改變數(shù)據(jù)字典中對該視圖的定義信息,視圖更改視圖只是改變數(shù)據(jù)字典中對該視圖的定義信息,視圖的所有基礎(chǔ)對象都不會受到任何影響;的所有基礎(chǔ)對象都不會受到任何影響;l更

23、改視圖之后,依賴于該視圖的所有視圖和更改視圖之后,依賴于該視圖的所有視圖和PL/SQL程序程序都將變?yōu)槎紝⒆優(yōu)镮NVALID(失效失效)狀態(tài);狀態(tài);l如果以前的視圖中具有如果以前的視圖中具有WITH CHECK OPTION選項(xiàng),但是選項(xiàng),但是重定義時沒有使用該選項(xiàng),則以前的此選項(xiàng)將自動刪除。重定義時沒有使用該選項(xiàng),則以前的此選項(xià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ù) 庫 基 礎(chǔ) 與庫 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程6.2.2 課堂案例2使用PL/SQL管理視圖案例完成步驟案例完成步驟 2使用使用PL/SQL修改視圖修改視圖 (2)修改視圖定義)修改視圖定義l【例例2-8】 對于已創(chuàng)建的視圖對于已創(chuàng)建的視圖vw_HotGoods,現(xiàn)在需要刪,現(xiàn)在需要刪除其中的折扣(除其中的折扣(g_Discount)信息,使之僅包含商品的商)信息,使之僅包含商品的商品號(品號(g_ID)、商品名稱()、商品名稱(g_Name)、類別號()、類別號(t_ID)、)、價格(價格(g_Pric

25、e)和數(shù)量()和數(shù)量(g_Number)信息。)信息。CREATE OR REPLACE VIEW SCOTT.vw_HotGoodsASSELECT g_ID AS 商品號商品號, g_Name AS 商品名稱商品名稱, t_ID AS 類別號類別號, g_Price 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ù) 庫 基 礎(chǔ) 與庫 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程6.2.2 課堂案例2使用PL/SQL管理視圖案例完成步驟案例完成步驟 (3)重新編譯

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

27、誤,視圖會變?yōu)閯t依賴該視圖的對象也會失效;若沒有錯誤,視圖會變?yōu)椤坝行в行А薄?O r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫 基 礎(chǔ) 與庫 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程6.2.2 課堂案例2使用PL/SQL管理視圖案例完成步驟案例完成步驟 3使用使用PL/SQL查看視圖查看視圖Oracle的的PL/SQL語句提供了語句提供了DESCRIBE命令用來查看視圖命令用來查看視圖的信息,其基本語法格式為:的信息,其基本語法格式為: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ù) 庫 基 礎(chǔ) 與庫 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程6.2.2 課堂案例2使用PL/SQL管理視圖案例完成步驟案例完成步驟 4使用使用PL/SQL刪除視圖刪除視圖Oracle的的PL/SQL語句提供了語句提供了DROP VIEW命令來刪除視圖命令來刪除視圖(必須保證當(dāng)前用戶具有(必須保證當(dāng)前用戶具有DROP ANY VIEW的系統(tǒng)權(quán)限),其的系統(tǒng)權(quán)限),其基本語法格式為:基本語法格式為: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ù) 庫 基 礎(chǔ) 與庫 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程O r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫 基 礎(chǔ) 與庫 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程課堂案例3使用視圖 掌握Oracle中通過視圖進(jìn)行查詢和DML操作的基本方法和注意事項(xiàng) 。案例學(xué)習(xí)目標(biāo)案例學(xué)習(xí)目標(biāo) 通過視圖查詢數(shù)據(jù)、通過視圖添加數(shù)據(jù)、通過視圖修改數(shù)據(jù)、通過視圖刪除數(shù)據(jù) 。案例知識要點(diǎn)案例知識要點(diǎn) O r a c l e

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

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

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

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

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

35、 AS 編號編號, u_Name AS 用戶名用戶名, u_Type AS 用用戶組戶組, u_Password AS 用戶密碼用戶密碼FROM SCOTT.Users;(2)通過視圖)通過視圖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ù) 庫 基 礎(chǔ) 與庫 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程課堂案例3使用視圖案例完成步驟案例完成步驟 l【例例3-4】 通過視圖通過視圖vw_Users將用戶將用戶“amy”的所屬用戶的所屬用戶

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

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

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

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

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

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

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

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

44、索引中只簇索引不同于常規(guī)索引,它在索引中只存儲一次索引值,而不管索引列值在表中重復(fù)多少次。存儲一次索引值,而不管索引列值在表中重復(fù)多少次。簇索引一般用于在簇上執(zhí)行數(shù)據(jù)操作的場合。簇索引一般用于在簇上執(zhí)行數(shù)據(jù)操作的場合。 O r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫 基 礎(chǔ) 與庫 基 礎(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刪除索引 。案例知識要點(diǎn)案例知識要點(diǎn) O

45、 r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫 基 礎(chǔ) 與庫 基 礎(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)入“索引頁面索引頁面” (2)單擊)單擊“創(chuàng)建創(chuàng)建”按鈕,進(jìn)入按鈕,進(jìn)入“創(chuàng)建索引創(chuàng)建索引”頁面,輸入頁面,輸入索引名稱(如:索引名稱(如:ix_GoodName),指定用戶方案為),指定用戶方案為SCOTT,并指定索引對應(yīng)的表和順序,并指定索引對應(yīng)的表和順序 (3)單擊)單擊“確定確定”按鈕,如果創(chuàng)建

46、的索引沒有錯誤,進(jìn)按鈕,如果創(chuàng)建的索引沒有錯誤,進(jìn)入入“確認(rèn)確認(rèn)”頁面,并顯示頁面,并顯示“已成功創(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ù) 庫 基 礎(chǔ) 與庫 基 礎(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ù) 庫 基 礎(chǔ) 與庫 基 礎(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ù) 庫 基 礎(chǔ) 與庫 基 礎(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修改索引、通過數(shù)據(jù)字典查看索引和DROP INDEX刪除索引 。案例知識要點(diǎn)案例知識要點(diǎn) O r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫 基

48、 礎(chǔ) 與庫 基 礎(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ù) 庫 基 礎(chǔ) 與庫 基 礎(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)于商品表的商品類別編號列的索引。建立關(guān)于商品表的商品類別編號列的索引。CREATE INDEX SCOTT.ix_TypeIDON SCOTT.Goods(t_ID);【例例4-3】建立關(guān)于訂單明細(xì)表的訂單編號列和產(chǎn)品編號建立關(guān)于訂單明細(xì)表的訂單編號列和產(chǎn)品編號列的復(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ù) 庫 基 礎(chǔ) 與庫 基 礎(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 命令可以刪除一個或多個當(dāng)前數(shù)據(jù)庫命令可以刪除一個或多個當(dāng)前數(shù)據(jù)庫中的索引。其語句格式如下:中的索引。其語句格式如下: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ù) 庫 基 礎(chǔ) 與庫 基 礎(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ù) 庫 基 礎(chǔ) 與庫 基 礎(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)建聚集鍵上的索引、修改聚集和刪除聚集 。案例知識要點(diǎn)案例知識要點(diǎn) O r a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫 基 礎(chǔ) 與庫 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程課堂案例6聚集操作聚集概述聚集概述 1索引聚集索引聚集索引聚集是保存數(shù)據(jù)表的一種可選方案。索引聚集在同一個索引聚集是保存數(shù)據(jù)表的一種可選方案。索引聚集在同一個數(shù)據(jù)塊中將多個不同表的相關(guān)行存儲在一起,從而改善相關(guān)數(shù)據(jù)塊中將多個不同表的相關(guān)行存儲在一起,從而改善相關(guān)操作的存取時間。共享公共列的表可以聚集在該列的周圍,操作的存取時間。共享公共列的表可以聚集在該列的周圍,從而

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

54、a c l eO r a c l e 數(shù) 據(jù)數(shù) 據(jù) 庫 基 礎(chǔ) 與庫 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程課堂案例6聚集操作案例完成步驟案例完成步驟- -創(chuàng)建聚集創(chuàng)建聚集 1創(chuàng)建聚集本身創(chuàng)建聚集本身【例例5-1】創(chuàng)建一個包含創(chuàng)建一個包含column0l的聚集的聚集testclu。CREATE CLUSTER SCOTT.testclu(column0l VARCHAR(20);2創(chuàng)建聚集中的表創(chuàng)建聚集中的表 【例例5-2】創(chuàng)建聚集為創(chuàng)建聚集為testclu的兩個測試表的兩個測試表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ù) 庫 基 礎(chǔ) 與庫 基 礎(chǔ) 與 應(yīng) 用 教 程應(yīng) 用 教 程課堂案例6聚集操作案例完成步驟案例完成步驟 3創(chuàng)建

溫馨提示

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

最新文檔

評論

0/150

提交評論