Oracle從入門(mén)到精通-經(jīng)典課件_第1頁(yè)
Oracle從入門(mén)到精通-經(jīng)典課件_第2頁(yè)
Oracle從入門(mén)到精通-經(jīng)典課件_第3頁(yè)
Oracle從入門(mén)到精通-經(jīng)典課件_第4頁(yè)
Oracle從入門(mén)到精通-經(jīng)典課件_第5頁(yè)
已閱讀5頁(yè),還剩77頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、Oracle從入門(mén)到精通-經(jīng)典Oracle從入門(mén)到精通-經(jīng)典Oracle從入門(mén)到精通-經(jīng)典課程地位.Net & C#SQL ServerXMLSPMASP.NET & WebServiceOracleUMLSPR: Computer BaseHTML&JavaScriptSQL Server BaseOOP&Java BaseCSTBJSP/ServletEJB&WebServiceWinFormsStruts&JSFTesting&SQALinux2021/2/42課程地位.Net & C#SQL ServerXMLSPMASP.NET & WebServiceOracleUMLSPR: C

2、omputer BaseHTML&JavaScriptSQL Server BaseOOP&Java BaseCSTBJSP/ServletEJB&WebServiceWinFormsStruts&JSFTesting&SQALinux2021/2/42課程目標(biāo)理解 Oracle 數(shù)據(jù)庫(kù)體系結(jié)構(gòu)熟練掌握 SQL 命令和 SQL 函數(shù)使用 Oracle 的各種數(shù)據(jù)庫(kù)對(duì)象使用 PL/SQL 編寫(xiě)存儲(chǔ)過(guò)程掌握基本的數(shù)據(jù)庫(kù)配置和管理2021/2/43目標(biāo) 了解 Oracle 體系結(jié)構(gòu)的各種組件 掌握 Oracle 中的基本用戶(hù)管理 了解 Oracle 的工具 了解 Oracle 的安裝和卸載2021/

3、2/44Oracle 數(shù)據(jù)庫(kù)簡(jiǎn)介 2-1對(duì)象關(guān)系型的數(shù)據(jù)庫(kù)管理系統(tǒng) (ORDBMS)在管理信息系統(tǒng)、企業(yè)數(shù)據(jù)處理、因特網(wǎng)及電子商務(wù)等領(lǐng)域使用非常廣泛在數(shù)據(jù)安全性與數(shù)據(jù)完整性控制方面性能優(yōu)越跨操作系統(tǒng)、跨硬件平臺(tái)的數(shù)據(jù)互操作能力Oracle數(shù)據(jù)庫(kù)的主要特點(diǎn)支持多用戶(hù)、大事務(wù)量的事務(wù)處理數(shù)據(jù)安全性和完整性控制支持分布式數(shù)據(jù)處理可移植性2021/2/45Oracle 數(shù)據(jù)庫(kù)簡(jiǎn)介 2-2 Oracle數(shù)據(jù)庫(kù)基于客戶(hù)端/服務(wù)器技術(shù)客戶(hù)端應(yīng)用程序通過(guò)向服務(wù)器請(qǐng)求并接收信息的方式與數(shù)據(jù)庫(kù)進(jìn)行交互。它充當(dāng)用戶(hù)與數(shù)據(jù)庫(kù)之間的接口請(qǐng)求 響應(yīng)數(shù)據(jù)庫(kù)服務(wù)器對(duì)數(shù)據(jù)庫(kù)表進(jìn)行最佳管理,處理多個(gè)客戶(hù)端對(duì)同一數(shù)據(jù)的并發(fā)訪(fǎng)問(wèn)。全

4、面地保持?jǐn)?shù)據(jù)完整性,并控制數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)權(quán)限等安全性需求網(wǎng)絡(luò)服務(wù)器2021/2/46Oracle 9i 體系結(jié)構(gòu)Oracle 服務(wù)器 Oracle 數(shù)據(jù)庫(kù) Oracle 實(shí)例Oracle 數(shù)據(jù)庫(kù)是一個(gè)數(shù)據(jù)的集合,該集合被視為一個(gè)邏輯單元管理數(shù)據(jù)庫(kù)的后臺(tái)進(jìn)程和內(nèi)存結(jié)構(gòu)的集合稱(chēng)為 Oracle 實(shí)例 數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)是指數(shù)據(jù)庫(kù)的組成、工作過(guò)程與原理,以及數(shù)據(jù)在數(shù)據(jù)庫(kù)中的組織與管理機(jī)制Oracle服務(wù)器提供開(kāi)放、全面和綜合的信息管理,它由Oracle數(shù)據(jù)庫(kù)和Oracle實(shí)例組成2021/2/47Oracle 主要組件 實(shí) 例 內(nèi)存結(jié)構(gòu) 后臺(tái)進(jìn)程 PMON SMON DBWR LGWR CKPT 其他 數(shù)

5、據(jù)庫(kù)數(shù)據(jù)文件數(shù)據(jù)文件數(shù)據(jù)文件控制文件控制文件日志文件日志文件參數(shù)文件歸檔日志文件口令文件SGA用戶(hù)進(jìn)程服務(wù)器進(jìn)程PGA共享池?cái)?shù)據(jù)緩沖區(qū)日志緩沖區(qū)2021/2/48Oracle 實(shí)例 Oracle 實(shí)例是后臺(tái)進(jìn)程和內(nèi)存結(jié)構(gòu)的集合Oracle 實(shí)例 系統(tǒng)全局區(qū) 后臺(tái)進(jìn)程 分配 啟動(dòng) 2021/2/49Oracle 數(shù)據(jù)庫(kù)Oracle 數(shù)據(jù)庫(kù)由操作系統(tǒng)文件組成,這些文件為數(shù)據(jù)庫(kù)信息提供實(shí)際物理存儲(chǔ)區(qū)Oracle 數(shù)據(jù)庫(kù)包括邏輯結(jié)構(gòu)和物理結(jié)構(gòu)物理結(jié)構(gòu) 邏輯結(jié)構(gòu) 物理結(jié)構(gòu)包含數(shù)據(jù)庫(kù)中的一組操作系統(tǒng)文件。邏輯結(jié)構(gòu)指數(shù)據(jù)庫(kù)創(chuàng)建之后形成的邏輯概念之間的關(guān)系Oracle 數(shù)據(jù)庫(kù) 2021/2/410會(huì)話(huà)會(huì)話(huà)是用

6、戶(hù)與 Oracle 服務(wù)器的單個(gè)連接當(dāng)用戶(hù)與服務(wù)器建立連接時(shí)創(chuàng)建會(huì)話(huà)當(dāng)用戶(hù)與服務(wù)器斷開(kāi)連接時(shí)關(guān)閉會(huì)話(huà)啟動(dòng) Oracle 實(shí)例使用SQL*Plus連接至數(shù)據(jù)庫(kù)創(chuàng)建用戶(hù)進(jìn)程創(chuàng)建服務(wù)器進(jìn)程提交 SQL 查詢(xún)2021/2/411Oracle 實(shí)例內(nèi)存結(jié)構(gòu)系統(tǒng)全局區(qū) (SGA) 程序全局區(qū) (PGA) Oracle 實(shí)例啟動(dòng)時(shí)分配系統(tǒng)全局區(qū)當(dāng)服務(wù)器進(jìn)程啟動(dòng)時(shí)分配程序全局區(qū)Oracle 的內(nèi)存結(jié)構(gòu)包含以下兩個(gè)內(nèi)存區(qū): 內(nèi)存區(qū) 122021/2/412系統(tǒng)全局區(qū) 2-1數(shù)據(jù)庫(kù)信息存儲(chǔ)于SGA,由多個(gè)數(shù)據(jù)庫(kù)進(jìn)程共享共享池 數(shù)據(jù)緩沖區(qū) 日志緩沖區(qū) SGA的內(nèi)存結(jié)構(gòu) 2021/2/413系統(tǒng)全局區(qū) 2-2共享池

7、共享池是對(duì)SQL、PL/SQL程序進(jìn)行語(yǔ)法分析、編譯、執(zhí)行的內(nèi)存區(qū)域共享池由庫(kù)緩存和數(shù)據(jù)字典緩存組成。共享池的大小直接影響數(shù)據(jù)庫(kù)的性能。數(shù)據(jù)緩沖區(qū) 用于存儲(chǔ)從磁盤(pán)數(shù)據(jù)文件中讀入的數(shù)據(jù),所有用戶(hù)共享。服務(wù)器進(jìn)程將讀入的數(shù)據(jù)保存在數(shù)據(jù)緩沖區(qū)中,當(dāng)后續(xù)的請(qǐng)求需要這些數(shù)據(jù)時(shí)可以在內(nèi)存中找到,不需要再?gòu)拇疟P(pán)讀取,提高了讀取速度。數(shù)據(jù)緩沖區(qū)的大小對(duì)數(shù)據(jù)庫(kù)的讀取速度有直接的影響。日志緩沖區(qū) 日志記錄數(shù)據(jù)庫(kù)的所有修改信息,日志信息首先產(chǎn)生于日志緩沖區(qū)。 當(dāng)日志緩沖區(qū)的日志數(shù)據(jù)達(dá)到一定數(shù)量時(shí),由后臺(tái)進(jìn)程將日志數(shù)據(jù)寫(xiě)入日志文件中。相對(duì)來(lái)說(shuō),日志緩沖區(qū)對(duì)數(shù)據(jù)庫(kù)的性能影響較小。2021/2/414程序全局區(qū)程序全局區(qū)

8、(PGA)包含單個(gè)服務(wù)器進(jìn)程所需的數(shù)據(jù)和控制信息PGA是在用戶(hù)進(jìn)程連接到數(shù)據(jù)庫(kù)并創(chuàng)建一個(gè)會(huì)話(huà)時(shí)自動(dòng)分配的,保存每個(gè)與Oracle 數(shù)據(jù)庫(kù)連接的用戶(hù)進(jìn)程所需的信息PGA為非共享區(qū),只能單個(gè)進(jìn)程使用,當(dāng)一個(gè)用戶(hù)會(huì)話(huà)結(jié)束,PGA釋放2021/2/415Oracle 實(shí)例進(jìn)程結(jié)構(gòu)Oracle 實(shí)例有幾種不同類(lèi)型的進(jìn)程,它們是: 實(shí)例進(jìn)程用戶(hù)進(jìn)程 服務(wù)器進(jìn)程 后臺(tái)進(jìn)程 用戶(hù)進(jìn)程是一個(gè)需要與Oracle服務(wù)器進(jìn)行交互的程序。當(dāng)用戶(hù)運(yùn)行一個(gè)應(yīng)用程序準(zhǔn)備向數(shù)據(jù)庫(kù)服務(wù)器發(fā)送請(qǐng)求時(shí),即創(chuàng)建了用戶(hù)進(jìn)程服務(wù)器進(jìn)程用于處理連接到該實(shí)例的用戶(hù)進(jìn)程的請(qǐng)求。當(dāng)用戶(hù)連接至 Oracle 數(shù)據(jù)庫(kù)實(shí)例創(chuàng)建會(huì)話(huà)時(shí),即產(chǎn)生服務(wù)器進(jìn)程

9、后臺(tái)進(jìn)程是Oracle數(shù)據(jù)庫(kù)為了保持最佳系統(tǒng)性能和協(xié)調(diào)多個(gè)用戶(hù)請(qǐng)求而設(shè)置的。 Oracle 實(shí)例啟動(dòng)時(shí)即創(chuàng)建一系列后臺(tái)進(jìn)程 2021/2/416后臺(tái)進(jìn)程 2-1后臺(tái)進(jìn)程PMON實(shí)例的各種后臺(tái)進(jìn)程是:SMONDBWRLGWRCKPT其他 2021/2/417后臺(tái)進(jìn)程 2-2PMON 進(jìn)程監(jiān)控進(jìn)程清理出現(xiàn)故障的進(jìn)程。 釋放所有當(dāng)前掛起的鎖定。釋放故障進(jìn)程使用的資源。SMON 系統(tǒng)監(jiān)控進(jìn)程在實(shí)例失敗之后,重新打開(kāi)數(shù)據(jù)庫(kù)時(shí)自動(dòng)恢復(fù)實(shí)例。 整理數(shù)據(jù)文件的自由空間,將相鄰區(qū)域結(jié)合起來(lái)。釋放不再使用的臨時(shí)段。DBWR 數(shù)據(jù)寫(xiě)入進(jìn)程管理數(shù)據(jù)緩沖區(qū),將最近使用過(guò)的塊保留在內(nèi)存中。將修改后的緩沖區(qū)數(shù)據(jù)寫(xiě)入數(shù)據(jù)文件

10、中。 LGWR 日志寫(xiě)入進(jìn)程負(fù)責(zé)將日志緩沖區(qū)中的日志數(shù)據(jù)寫(xiě)入日志文件。 系統(tǒng)有多個(gè)日志文件,該進(jìn)程以循環(huán)的方式將數(shù)據(jù)寫(xiě)入文件。2021/2/418Oracle 物理組件物理組件就是Oracle數(shù)據(jù)庫(kù)所使用的操作系統(tǒng)物理文件。物理文件可分為三類(lèi):物理組件數(shù)據(jù)文件 控制文件日志文件數(shù)據(jù)文件用于存儲(chǔ)數(shù)據(jù)庫(kù)數(shù)據(jù),如表、索引數(shù)據(jù)等??刂莆募怯涗洈?shù)據(jù)庫(kù)物理結(jié)構(gòu)的二進(jìn)制文件。日志文件記錄對(duì)數(shù)據(jù)庫(kù)的所有修改信息,用于故障恢復(fù)2021/2/419Oracle 邏輯組件 3-1數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)是從邏輯的角度分析數(shù)據(jù)庫(kù)的組成。Oracle 的邏輯組件包括:數(shù)據(jù)庫(kù) 表空間 段 區(qū) 數(shù)據(jù)塊 模式2021/2/420O

11、racle 邏輯組件 3-2表空間是數(shù)據(jù)庫(kù)中最大的邏輯單位,一個(gè) Oracle 數(shù)據(jù)庫(kù)至少包含一個(gè)表空間,就是名為SYSTEM的系統(tǒng)表空間。每個(gè)表空間是由一個(gè)或多個(gè)數(shù)據(jù)文件組成的,一個(gè)數(shù)據(jù)文件只能與一個(gè)表空間相關(guān)聯(lián)。表空間的大小等于構(gòu)成該表空間的所有數(shù)據(jù)文件大小之和。CREATE TABLESPACE tablespacenameDATAFILE filename SIZE integer K|M AUTOEXTEND OFF|ON;創(chuàng)建表空間的語(yǔ)法是:2021/2/421Oracle 邏輯組件 3-2create tablespace test_data datafile D:oracleo

12、radataOracle9iuser_data.dbf size 50m autoextend on next 50m maxsize 20480m extent management local; 2021/2/422Oracle 邏輯組件 3-3段段是構(gòu)成表空間的邏輯存儲(chǔ)結(jié)構(gòu),段由一組區(qū)組成。 按照段所存儲(chǔ)數(shù)據(jù)的特征,將段分為四種類(lèi)型,即數(shù)據(jù)段、索引段、回退段和臨時(shí)段。區(qū)區(qū)為段分配空間,它由連續(xù)的數(shù)據(jù)塊組成。 當(dāng)段中的所有空間已完全使用時(shí),系統(tǒng)自動(dòng)為該段分配一個(gè)新區(qū)。區(qū)不能跨數(shù)據(jù)文件存在,只能存在于一個(gè)數(shù)據(jù)文件中。數(shù)據(jù)塊數(shù)據(jù)塊是Oracle服務(wù)器所能分配、讀取或?qū)懭氲淖钚〈鎯?chǔ)單元。Orac

13、le服務(wù)器以數(shù)據(jù)塊為單位管理數(shù)據(jù)文件的存儲(chǔ)空間。 模式模式是對(duì)用戶(hù)所創(chuàng)建的數(shù)據(jù)庫(kù)對(duì)象的總稱(chēng)。 模式對(duì)象包括表、視圖、索引、同義詞、序列、過(guò)程和程序包等。2021/2/423Oracle 邏輯組件 3-42021/2/424Oracle 網(wǎng)絡(luò)配置 2-1Oracle產(chǎn)品安裝完成后,服務(wù)器和客戶(hù)端都需要進(jìn)行網(wǎng)絡(luò)配置才能實(shí)現(xiàn)網(wǎng)絡(luò)連接。 服務(wù)器端配置監(jiān)聽(tīng)器,客戶(hù)端配置網(wǎng)絡(luò)服務(wù)名。tnsnames.oraOracle 客戶(hù)端listener.oraOracle 服務(wù)器2021/2/425Oracle 網(wǎng)絡(luò)配置 2-2服務(wù)器端監(jiān)聽(tīng)器配置信息包括監(jiān)聽(tīng)協(xié)議、地址及其他相關(guān)信息。 配置信息保存在名為listen

14、er.ora的文件中。在安裝服務(wù)器軟件時(shí)自動(dòng)配置一個(gè)監(jiān)聽(tīng)器客戶(hù)端的網(wǎng)絡(luò)服務(wù)名配置信息包括服務(wù)器地址、監(jiān)聽(tīng)端口號(hào)和數(shù)據(jù)庫(kù)SID等,與服務(wù)器的監(jiān)聽(tīng)器建立連接。配置信息保存在名為tnsnames.ora的文件中Oracle中的 Net Configuration Assistant和Net Manager工具都能用來(lái)配置監(jiān)聽(tīng)器和網(wǎng)絡(luò)服務(wù)名2021/2/426Oracle 查詢(xún)工具 Oracle 查詢(xún)工具SQL*PlusiSQL*PlusPL/SQLOracle 提供的工具非常容易使用。Oracle 的查詢(xún)工具包括:SQL*Plus是Oracle最常用的工具之一,用于接受和執(zhí)行SQL命令以及PL/SQ

15、L塊。 iSQL*Plus可以執(zhí)行能用SQL*Plus完成的所有任務(wù)。該工具的優(yōu)勢(shì)在于能通過(guò)瀏覽器訪(fǎng)問(wèn)它。 PL/SQL 是 SQL 的擴(kuò)展。PL/SQL 結(jié)合了SQL語(yǔ)言的數(shù)據(jù)操縱能力和過(guò)程語(yǔ)言的流程控制能力2021/2/427Oracle 企業(yè)管理器 Oracle 企業(yè)管理器為管理員提供了圖形化的用戶(hù)界面,并集成了管理數(shù)據(jù)庫(kù)的工具2021/2/428Oracle 默認(rèn)用戶(hù)只有用合法的用戶(hù)帳號(hào)才能訪(fǎng)問(wèn)Oracle數(shù)據(jù)庫(kù)Oracle 有幾個(gè)默認(rèn)的數(shù)據(jù)庫(kù)用戶(hù) Oracle 默認(rèn)用戶(hù)SYSSYSTEMSCOTT數(shù)據(jù)庫(kù)中所有數(shù)據(jù)字典表和視圖都存儲(chǔ)在 SYS 模式中。SYS用戶(hù)主要用來(lái)維護(hù)系統(tǒng)信息和管

16、理實(shí)例。SYSTEM 是默認(rèn)的系統(tǒng)管理員,該用戶(hù)擁有Oracle管理工具使用的內(nèi)部表和視圖。通常通過(guò)SYSTEM用戶(hù)管理數(shù)據(jù)庫(kù)用戶(hù)、權(quán)限和存儲(chǔ)等SCOTT用戶(hù)是Oracle 數(shù)據(jù)庫(kù)的一個(gè)示范帳戶(hù),在數(shù)據(jù)庫(kù)安裝時(shí)創(chuàng)建2021/2/429創(chuàng)建新用戶(hù)要連接到Oracle數(shù)據(jù)庫(kù),就需要?jiǎng)?chuàng)建一個(gè)用戶(hù)帳戶(hù)每個(gè)用戶(hù)都有一個(gè)默認(rèn)表空間和一個(gè)臨時(shí)表空間CREATE USER命令用于創(chuàng)建新用戶(hù)CREATE USER usernameIDENTIFIED BY passwordDEFAULT TABLESPACE tablespaceTEMPORARY TABLESPACE tablespace;CREATE US

17、ER 命令的語(yǔ)法是:CREATE USER MARTINIDENTIFIED BY martinpwdDEFAULT TABLESPACE USERSTEMPORARY TABLESPACE TEMP;創(chuàng)建一個(gè)名稱(chēng)為 martin 的用戶(hù),其密碼為 martinpwd2021/2/430授予權(quán)限 3-1權(quán)限指的是執(zhí)行特定命令或訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)對(duì)象的權(quán)利權(quán)限有兩種類(lèi)型,系統(tǒng)權(quán)限和對(duì)象權(quán)限系統(tǒng)權(quán)限允許用戶(hù)執(zhí)行某些數(shù)據(jù)庫(kù)操作,如創(chuàng)建表就是一個(gè)系統(tǒng)權(quán)限對(duì)象權(quán)限允許用戶(hù)對(duì)數(shù)據(jù)庫(kù)對(duì)象(如表、視圖、序列等)執(zhí)行特定操作角色是一組相關(guān)權(quán)限的組合,可以將權(quán)限授予角色,再把角色授予用戶(hù),以簡(jiǎn)化權(quán)限管理。2021/2/4

18、31授予權(quán)限 3-2GRANT 命令可用于為用戶(hù)分配權(quán)限或角色 GRANT CONNECT TO MARTIN; CONNECT角色允許用戶(hù)連接至數(shù)據(jù)庫(kù),并創(chuàng)建數(shù)據(jù)庫(kù)對(duì)象GRANT RESOURCE TO MARTIN; RESOURCE角色允許用戶(hù)使用數(shù)據(jù)庫(kù)中的存儲(chǔ)空間GRANT CREATE SEQUENCE TO MARTIN; 此系統(tǒng)權(quán)限允許用戶(hù)在當(dāng)前模式中創(chuàng)建序列,此權(quán)限包含在CONNECT角色中2021/2/432授予權(quán)限 3-3授予用戶(hù) MARTIN 操作TEST表對(duì)象的權(quán)限 GRANT SELECT ON TEST TO MARTIN; 允許用戶(hù)查詢(xún) TEST 表的記錄GRAN

19、T UPDATE ON TEST TO MARTIN; 允許用戶(hù)更新 TEST 表中的記錄GRANT ALL ON TEST TO MARTIN; 允許用戶(hù)插入、刪除、更新和查詢(xún) TEST 表中的記錄2021/2/433更改和刪除用戶(hù)ALTER USER 命令可用于更改口令 ALTER USER MARTIN IDENTIFIED BY martinpass;修改 MARTIN 用戶(hù)的密碼DROP USER 命令用于刪除用戶(hù) DROP USER MARTIN CASCADE; 刪除 MARTIN 用戶(hù)模式2021/2/434用戶(hù)管理Connect scott/tigerConnect Syst

20、em/sys as sysdba斷開(kāi)鏈接disconnect解鎖:alter user scott account unlock;顯示當(dāng)前用戶(hù):show user;查看當(dāng)前用戶(hù)下所有對(duì)象:select * from tab;跨用戶(hù)訪(fǎng)問(wèn):select * from scott.emp;2021/2/435用戶(hù)管理創(chuàng)建用戶(hù):create user zs identified by zs;drop user zs;drop user zs cascade;創(chuàng)建session權(quán)限:Grant 權(quán)限 to 用戶(hù)grant create session to zs;Oracle提供了n種角色:Connec

21、tResourceDBAGrant connect,resource to zs;但是仍然不能創(chuàng)建表,是因?yàn)檫€沒(méi)有表空間的權(quán)限。(10G已經(jīng)有了?。?021/2/436用戶(hù)管理提示密碼失效:ALTER USER test PASSWORD expire ;對(duì)象授權(quán):GRANT 權(quán)限(select、update、insert、delete) ON schema.table TO 用戶(hù)|- GRANT select ON scott.emp TO test ;|- Grant all on scott.emp to test; -將表相關(guān)的所有權(quán)限付給test|- Grant update(ena

22、me) on emp to test; 可以控制到列(還有insert)2021/2/437用戶(hù)管理權(quán)限回收REVOKE 權(quán)限 ON schema.table FROM 用戶(hù)|- REVOKE select ON scott.emp FROM test ;查看權(quán)限 select * from user_sys_privs;權(quán)限傳遞Grant create session to test with admin option;(可以就可以實(shí)現(xiàn)權(quán)限傳遞)Q:如果權(quán)限sys-test-test1 ,這時(shí)斷掉test的權(quán)限, test1還會(huì)有權(quán)限嗎?A:在oracle9i是,答案是還會(huì)有。2021/2/

23、438用戶(hù)管理角色角色就是一堆權(quán)限的集合Create role myrole;Grant create table to myrole;Drop role myrole; 刪除角色grant unlimited tablespace to user; 2021/2/439用戶(hù)管理grant connect,resource to user;然后,用戶(hù)包括的權(quán)限:CONNECT角色: -是授予最終用戶(hù)的典型權(quán)利,最基本的ALTER SESSION -修改會(huì)話(huà)CREATE CLUSTER -建立聚簇CREATE DATABASE LINK -建立數(shù)據(jù)庫(kù)鏈接CREATE SEQUENCE -建立序列

24、CREATE SESSION -建立會(huì)話(huà)CREATE SYNONYM -建立同義詞CREATE VIEW -建立視圖RESOURCE角色: -是授予開(kāi)發(fā)人員的CREATE CLUSTER -建立聚簇CREATE PROCEDURE -建立過(guò)程CREATE SEQUENCE -建立序列CREATE TABLE -建表CREATE TRIGGER -建立觸發(fā)器CREATE TYPE -建立類(lèi)型2021/2/440用戶(hù)管理從dba_sys_privs里可以查到:SQL select grantee,privilege from dba_sys_privs where grantee=RESOURCE

25、 order by privilege2021/2/441序列create sequence myseq start with 1 increment by 2 order cache 20select myseq.nextval from dualselect myseq.currval from dual必須現(xiàn)有nextval才有currval.2021/2/442序列create sequence myseq1 start with 1 increment by 1 cycle maxvalue 3 nocache這樣到3之后就會(huì)從1重新開(kāi)始alter sequence myseq in

26、crement by 5不能改變當(dāng)前值,但是可以改變?cè)隽俊?021/2/443同義詞很方便的操作不同用戶(hù)下的對(duì)象能使2個(gè)不同的應(yīng)用程序使用不同的名字指向同一張表使用不同的用戶(hù)指向同一張表。2021/2/444同義詞create synonym userinfo for zs.userinfo(這樣創(chuàng)建的同義詞是私有的,只有創(chuàng)建者才能用)drop synonym userinfo如果在本用戶(hù)中已有名字,再創(chuàng)建同義詞,會(huì)報(bào)錯(cuò) 名稱(chēng)已由現(xiàn)有對(duì)象使用!2021/2/445同義詞create public synonym userinfo for zs.userinfo(這樣創(chuàng)建的同義詞才是公有的)dr

27、op public synonym userinfo如果在本用戶(hù)中已經(jīng)有名字,再創(chuàng)建同義詞,會(huì)遵循就近一致的原則。2021/2/446視圖視圖以經(jīng)過(guò)定制的方式顯示來(lái)自一個(gè)或多個(gè)表的數(shù)據(jù)視圖可以視為“虛擬表”或“存儲(chǔ)的查詢(xún)”創(chuàng)建視圖所依據(jù)的表稱(chēng)為“基表”視圖的優(yōu)點(diǎn)有:提供了另外一種級(jí)別的表安全性隱藏的數(shù)據(jù)的復(fù)雜性簡(jiǎn)化的用戶(hù)的SQL命令隔離基表結(jié)構(gòu)的改變通過(guò)重命名列,從另一個(gè)角度提供數(shù)據(jù)2021/2/447視圖create or replace view schema.view alias,alias. as subquery;desc myview;drop view myview;2021/2

28、/448視圖創(chuàng)建試圖create or replace view myuser as select * from userinfo order by id desc2021/2/449視圖創(chuàng)建試圖帶輸出效果 create or replace view myuser(編號(hào),名稱(chēng),成績(jī)) as select * from userinfo order by id desc2021/2/450視圖創(chuàng)建試圖帶輸出效果 create or replace view myuser(編號(hào),名稱(chēng),成績(jī)) as select id,username,score+20 from userinfo order b

29、y id desc2021/2/451視圖更新試圖:可以更新試圖可更新試圖中不能包含分組,group by子句,distinct,rownum等。insert into myuser(編號(hào),名稱(chēng),成績(jī)) values (103,ddd,198)2021/2/452視圖with read only 只讀試圖:create or replace view myuser(編號(hào),名稱(chēng),成績(jī)) as select id,username,score from userinfo order by id desc with read only2021/2/453聯(lián)接視圖 2-1StudnoStudnameS

30、ubmrksSubno1Rob4522James3343Jesica404SubnoSubname2English4Maths5ScienceStud_detailsSub_detailsStudnoStudnameSubmrksSubname1Rob45English2James33Maths3Jesica40MathsCREATE VIEW Stud_sub_view ASSELECT Studno, Studname, Submrks, SubnameFROM Stud_details, Sub_Details WHERE Stud_details.Subno=Sub_details.S

31、ubno;Stud_sub_view聯(lián)接視圖542021/2/454視圖中可以使用單行函數(shù)、分組函數(shù)和表達(dá)式使用DROP VIEW語(yǔ)句刪除視圖視圖中的函數(shù)CREATE VIEW item_view AS SELECT itemcode, LOWER(itemdesc) item_descFROM itemfile; SQL DROP VIEW toys_view; 2021/2/455約束的主要功能是保證表中的數(shù)據(jù)合法性,按照約束的分類(lèi),一共有五種約束,非空約束、唯一約束、主鍵約束、外鍵約束、檢查約束、 約束2021/2/456非空約束簡(jiǎn)稱(chēng)NKcreate table a(id number,

32、name varchar(2) not null);約束2021/2/457唯一約束unique UK唯一約束指的是每一個(gè)列上的數(shù)據(jù)是不允許重復(fù)的,例如email下面建表 create table a( id number,name varchar2(100) not null,email varchar2(50) unique );約束2021/2/458主鍵約束Primary Key PK主鍵約束=非空約束+唯一約束,在之前設(shè)置唯一約束的時(shí)候發(fā)現(xiàn)可以為null值,而如果使用了主鍵約束之后則不能為空,而主鍵一般作為數(shù)據(jù)的唯一的一個(gè)標(biāo)記出現(xiàn),例如 人員ID范例建立主鍵約束 create tab

33、le a( id number primary key, name varchar2(50) not null );約束2021/2/459檢查約束check CK檢查約束指的是為表中的數(shù)據(jù)增加一些過(guò)來(lái)?xiàng)l件設(shè)置年齡的時(shí)候范圍是:0-200;設(shè)置性別的時(shí)候應(yīng)該是:男、女、中;范例設(shè)置檢查約束 create table a( id number , name varchar2(50) not null, sex varchar2(10) not null, age number(3), constraint PK_id primary key(id), constraint CK_sex chec

34、k(sex in(男,女,中), constraint CK_age check(age between 0 and 150) );約束2021/2/460主外鍵約束之前的四種約束都是在單張表中進(jìn)行的,而主外鍵是在兩張表中進(jìn)行的,這兩張表是存在父子關(guān)系的,也就是子表中的某個(gè)字段的取值范圍由父表所決定。例如現(xiàn)在要求表示出一種關(guān)系,每一個(gè)人有多本書(shū),應(yīng)該定義兩種數(shù)據(jù)表 member(主) book(子)約束2021/2/461create table member(mid number ,name varchar2(50) not null,constraint PK_mid primary ke

35、y(mid);create table book (bid number ,title varchar2(50) not null,mid number,constraint PK_bid primary key(bid),constraint fk_mid foreign key(mid) references member(mid); 約束2021/2/462刪除父表之前,必須刪除字表oracle之中專(zhuān)門(mén)提供一個(gè)強(qiáng)制性刪除表的操作,在刪除的時(shí)候加上一句 cascade constraint drop table member cascade constraint ;或者drop table

36、 member cascade constraint purge; 約束2021/2/463索引 3-1索引是與表相關(guān)的一個(gè)可選結(jié)構(gòu)用以提高 SQL 語(yǔ)句執(zhí)行的性能減少磁盤(pán)I/O使用 CREATE INDEX 語(yǔ)句創(chuàng)建索引在邏輯上和物理上都獨(dú)立于表的數(shù)據(jù)Oracle 自動(dòng)維護(hù)索引2021/2/464索引 3-2B*樹(shù)索引位圖索引2021/2/465索引 3-2索引有各種類(lèi)型,除了標(biāo)準(zhǔn)索引外,還有一些特殊類(lèi)型的索引:索引的類(lèi)型基于函數(shù)的索引反向鍵索引位圖索引唯一索引組合索引2021/2/466索引 3-3SQL CREATE UNIUQE | BITMAP INDEX .ON .( | ASC

37、| DESC, | ASC | DESC,.)TABLESPACE STORAGE LOGGING | NOLOGGINGCOMPUTE STATISTICSNOCOMPRESS | COMPRESSNOSORT | REVERSEPARTITION | GLOBAL PARTITION2021/2/467索引 3-3相關(guān)說(shuō)明1) UNIQUE | BITMAP:指定UNIQUE為唯一值索引,BITMAP為位圖索引,省略為B-Tree索引。2) | ASC | DESC:可以對(duì)多列進(jìn)行聯(lián)合索引,當(dāng)為expression時(shí)即“基于函數(shù)的索引”3)TABLESPACE:指定存放索引的表空間(索引和

38、原表不在一個(gè)表空間時(shí)效率更高)4)STORAGE:可進(jìn)一步設(shè)置表空間的存儲(chǔ)參數(shù)5)LOGGING | NOLOGGING:是否對(duì)索引產(chǎn)生重做日志(對(duì)大表盡量使用NOLOGGING來(lái)減少占用空間并提高效率)6)COMPUTE STATISTICS:創(chuàng)建新索引時(shí)收集統(tǒng)計(jì)信息7)NOCOMPRESS | COMPRESS:是否使用“鍵壓縮”(使用鍵壓縮可以刪除一個(gè)鍵列中出現(xiàn)的重復(fù)值)8)NOSORT | REVERSE:NOSORT表示與表中相同的順序創(chuàng)建索引,REVERSE表示相反順序存儲(chǔ)索引值9)PARTITION | NOPARTITION:可以在分區(qū)表和未分區(qū)表上對(duì)創(chuàng)建的索引進(jìn)行分區(qū)2021

39、/2/468索引 3-3SQL CREATE INDEX item_index ON itemfile (itemcode) TABLESPACE index_tbs;創(chuàng)建標(biāo)準(zhǔn)索引重建索引SQL ALTER INDEX item_index REBUILD; 刪除索引SQL DROP INDEX item_index; 2021/2/469唯一索引SQL CREATE UNIQUE INDEX item_index ON itemfile (itemcode);唯一索引確保在定義索引的列中沒(méi)有重復(fù)值Oracle 自動(dòng)在表的主鍵列上創(chuàng)建唯一索引使用CREATE UNIQUE INDEX語(yǔ)句創(chuàng)建唯

40、一索引2021/2/470組合索引SQL CREATE INDEX comp_index ON itemfile(p_category, itemrate);組合索引是在表的多個(gè)列上創(chuàng)建的索引索引中列的順序是任意的如果 SQL 語(yǔ)句的 WHERE 子句中引用了組合索引的所有列或大多數(shù)列,則可以提高檢索速度2021/2/471反向鍵索引反轉(zhuǎn)索引列鍵值的每個(gè)字節(jié)通常建立在值是連續(xù)增長(zhǎng)的列上,使數(shù)據(jù)均勻地分布在整個(gè)索引上創(chuàng)建索引時(shí)使用REVERSE關(guān)鍵字反向鍵索引SQL CREATE INDEX rev_index ON itemfile (itemcode) REVERSE;SQL ALTER I

41、NDEX rev_index REBUID NOREVERSE;2021/2/472位圖索引SQL CREATE BITMAP INDEX bit_index ON order_master (orderno);位圖索引適合創(chuàng)建在低基數(shù)列上位圖索引不直接存儲(chǔ)ROWID,而是存儲(chǔ)字節(jié)位到ROWID的映射減少響應(yīng)時(shí)間節(jié)省空間占用2021/2/473索引中的分區(qū)可以將索引存儲(chǔ)在不同的分區(qū)中與分區(qū)有關(guān)的索引有三種類(lèi)型:局部分區(qū)索引 在分區(qū)表上創(chuàng)建的索引,在每個(gè)表分區(qū)上創(chuàng)建獨(dú)立的索引,索引的分區(qū)范圍與表一致全局分區(qū)索引 在分區(qū)表或非分區(qū)表上創(chuàng)建的索引,索引單獨(dú)指定分區(qū)的范圍,與表的分區(qū)范圍或是否分區(qū)無(wú)關(guān)全局非分區(qū)索引 在分區(qū)表上創(chuàng)建的全局普通索引,索引沒(méi)有被分區(qū)2021/2/474獲取索引的信息SQL SELECT INDEX_NAME, TABLE_NAME, COLUMN_NAME FROM USER_IND_COLUMNS ORDER BY IND

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論