Oracle9i 数据库技术课件_第1页
Oracle9i 数据库技术课件_第2页
Oracle9i 数据库技术课件_第3页
Oracle9i 数据库技术课件_第4页
Oracle9i 数据库技术课件_第5页
已阅读5页,还剩305页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章Oracle簡介數據處理技術的三個階段人工處理階段數據無法長期保存,沒有專門的軟體對數據進行管理,無法共用,數據不具有獨立性。檔系統階段數據可以長期保存,由檔系統保管數據,但在共用性、獨立性方面較差。資料庫系統階段數據結構化,共用性高、冗餘度低,易擴充,獨立性強,DBMS對數據進行了集中控制(在安全性、完整性、併發性、可恢復性方面)數據的模型表示數據結構:用於描述系統的靜態特徵。數據結構指數據庫中對象類型的集合,如網狀模型中的資料項目,關係模型中的關係等。在資料庫系統中,通常按照不同類型的數據結構來命名數據模型。數據操作:數據操作指對數據庫中各種對象進行操作的集合,包括操作及有關的操作規則,用於描述系統的動態特徵。數據操作包括對這些數據進行插入、修改、刪除等操作。完整性約束:是指數據必須滿足的一組規則,用以限定符合數據模型的資料庫狀態及狀態的變化,以保證數據的正確性、有效性和相容性。如在關係模型中,任何關係必須滿足的實體完整性和參照完整性。另外,資料庫系統還允許用戶自定義完整性約束條件。資料庫系統的組成資料庫系統資料庫操作系統資料庫管理系統DBMS應用開發工具應用程式資料庫管理員DBA用戶等組成關係資料庫管理系統(RDBMS)流行的RDBMS:Oracle、DB2、SQLServer、SYBASERDBMS的層次結構應用層:處理各種資料庫應用,是最終用戶的介面層。語言翻譯處理層:對SQL語句進行翻譯。數據存取層:處理記錄。數據存儲層:處理數據和緩沖區。操作系統層:處理物理存儲塊。1.2Oracle9i資料庫的基礎知識Oracle的發展歷程Oracle9i的產品組成Oracle9i的新特性Oracle9i的工作模式Oracle的發展歷程1977年開始研發,創始人為LarryEllison,BobMiner,EdOates。Oracle9i是一個面向Web的資料庫,支持多媒體數據,支持龐大的訪問量,支持Java編程。ORACLE公司美國總部資料Oracle總裁Larry

Ellison埃裏森在32歲以前他還一事無成,讀了三個大學,沒得到一個學位文憑,換了十幾家公司,老婆也離他而去,開始創業時只有1200美元,卻使得oracle公司連續十二年銷售額每年翻一翻,成為世界上第二大的軟體公司,他自己也成為矽谷首富.ellison的經營手腕和強力,擊敗了一個又一個的對手,ellison要打倒的最後一個目標就是軟體帝國之王微軟的比爾.蓋茨。

ellison被財富雜誌列為世界上第五富的人,他擁有的oracle是世界上最大的資料庫軟體公司.oracle公司也許並不為大眾所知,但當你從自動提款機上取錢,或者在航空公司預定航班,或者將家中電視連上internet網,你就在和oracle打交道,oracle的客戶大

多是赫赫有名,名列財富500家的大型公司。為了紀念他的突出成就,現Scott是Oracle系統的默認登錄用戶名之一。BruceScott現在是公司發起人之一

Oracle9i的產品組成Oracle9i的新特性Oracle9i資料庫與以前的版本相比,在多方面都有著新的突破:高可用性(Availability)可伸縮性(Scalability)高性能(Performance)高安全性(Security)智能管理功能集成的電子商務應用開發平臺

1.3Oracle9i的網路資源常見的Oracle技術站點免費下載Oracle9i:http:///cn英文版的Oracle公司官方站點//cn/,中文版的Oracle公司官方站點,Oracle中國用戶討論組/,Oracle技術網/,中國軟體開發網本課程的學習方式課堂認真聽講上機完成佈置的作業課後多管道查找相關資料不懂的東西多請教。學習本課今後相關就業方向資料庫軟體工程師DBA資料庫系統管理員資料庫前端軟體開發人員大公司資訊化辦公文員銀行職員其他課程考核本課程的成績有平時成績和期末考試成績二部分組成,其中平時成績占60%,期末考試成績占40%。平時成績:課堂提問、上機實踐、出勤及學習態度。其中:課堂提問:每位學生一學期下來都有至少1次提問機會。上機實踐:依據完成快慢、解決問題方式的優劣考核。出勤:分為出勤、遲到、曠課、請假4種情況。其中遲到一次扣1分。曠課1次扣2分。請假不扣分。累計扣分不超過10分。期末考試的形式為開卷,考試時間為90分鐘。題型有:填空、判斷、簡答、分析等,主要考察學生對所學理論知識的掌握程度。提問回顧數據模型的三要素中哪一個要素用於描述數據模型的動態特徵?說出資料庫、資料庫管理系統、資料庫系統的區別。Oracle9i資料庫能不能在Linux平臺上運行?SQLServer2000能不能?Oracle9i的產品組成由幾部分構成?引入從邏輯和物理的角度考慮,Oracle的組成如何?Oracle資料庫如何保證成千上萬用戶的高性能併發訪問?使用Oracle資料庫如何構建資料庫應用程式?本節課要講解的內容Oracle9i的邏輯結構:表空間、段、區間、數據塊、表、其他邏輯對象。Oracle9i的物理結構:數據檔、控制檔、日誌檔、初始化參數檔、其他檔。Oracle9i的總體結構:記憶體結構、後臺進程、Oracle例程。Oracle9i的應用架構:多磁片結構、磁片映像結構、客戶/伺服器系統、共用伺服器系統、並行資料庫系統、分佈式資料庫系統。Oracle9i資料庫的邏輯結構表空間(TableSpace)表空間是Oracle資料庫中數據的邏輯組織單位,通過表空間來組織資料庫中的數據。資料庫邏輯上由一個或多個表空間組成,表空間物理上是由一個或多個數據檔組成。通過使用表空間,Oracle可以有效的控制資料庫所佔用的磁片空間,並控制資料庫用戶的空間配額。如果一個用戶的表空間空間不夠用時,可以通過添加數據檔來增加空間配額。Oracle通過將表空間的聯機或脫機來控制資料庫數據的可用性,即一個表空間有兩種狀態:聯機和脫機。默認表空間表空間名稱說明CWMLITE用於聯機分析處理(OLAP)DRSYS用於存放與工作空間設置有關的資訊EXAMPLE用於存放例程(Instance)資訊INDEX用於存放資料庫中的索引資訊SYSTEM是每個Oracle資料庫都必須具備的部分TEMP用於存儲臨時表TOOLS用於存放資料庫工具軟體所需的資料庫對象UNDOTBS用於保存回滾段(RollbackSegment)為RBSUSERS用於存放用戶私有資訊DatafileSegmentBlocksExtentSegmentDatafileSegmentBlocksExtentSegment表空間表空間/檔/段/區間/數據塊的示意圖段(Segment)

、區間(Extent)和數據塊段:數據段、索引段、臨時段和回滾段。段由若干個區間組成。區間:由連續分配的相鄰數據塊組成。數據塊:是資料庫中最小的、最基本的存儲單位。表(Table)及其他邏輯對象表是用於存放數據的資料庫對象。按照功能的不同,表分為系統表和用戶表。系統表又稱數據字典,用於存儲管理用戶數據和數據庫本身的數據,記錄數據、口令、數據檔的位置等;用戶表就是用於存放用戶的數據。除了表之外,Orac1e9i資料庫提供了其他邏輯對象(LogicObject),如高級佇列、數組、過程和函數、包、觸發器等。Oracle9i資料庫的物理結構物理上,Oracle9i資料庫由各種物理檔組成,每個物理檔又由若干個Oracle塊組成。物理檔是構成Oracle9i資料庫的基礎。Oracle9i資料庫的物理檔主要有以下幾種:(1)數據檔(Datafile);(2)控制檔(Controlfile);(3)日誌檔(Redofile);(4)初始化參數檔(Parameterfile);(5)其他Oracle物理檔。各種物理檔關係圖數據檔數據檔就是用來存放資料庫數據的物理檔,檔尾碼“.DBF”。數據檔存放的主要內容如下:(1)表中的數據;(2)索引數據;(3)數據字典定義;(4)回滾事務所需資訊;(5)存儲過程、函數和數據包的代碼;(6)用來排序的臨時數據。控制檔控制檔用於記錄和維護整個資料庫的全局物理結構,它是一個二進位檔,檔尾碼為“.CTL”。控制檔存放了與Oracle9i資料庫物理檔有關的關鍵控制資訊,如數據庫名和創建時間,物理檔案名、大小及存放位置等資訊。控制檔在創建資料庫時生成,以後當資料庫發生任何物理變化都將被自動更新。每個資料庫包含通常兩個或多個控制檔。這幾個控制檔的內容上保持一致。日誌檔日誌檔用於記錄對數據庫進行的修改操作和事務操作,檔尾碼為“.LOG”。每個資料庫至少包含兩個重做日誌組,這兩個日誌組是迴圈使用的。日誌寫入進程(LGWR)會將資料庫發生的變化寫入到日誌組一,當日志組一寫滿後,即產生日誌切換,LGWR會將資料庫發生的變化寫入到日誌組二,當日志組二也寫滿後,產生日誌切換,LGWR會將資料庫發生的變化再寫入日誌組一,依次類推。日誌檔分為聯機重做日誌檔和歸檔日誌檔。歸檔日誌,是當前非活動重做日誌的備份,可以使用歸檔日誌進行恢復。日誌檔的模式歸檔模式Archivclog、非歸檔模式NoArchivelog歸檔模式,將保留所有的重做日誌內容。這樣資料庫可以從所有類型的失敗中恢復,是最安全的資料庫工作方式。對於非常重要的Oraclc9i資料庫應用,比如銀行系統等,必須採用歸檔模式。非歸檔模式,不保留以前的重做日誌內容,適合於對數據庫中數據要求不高的場合。初始化參數檔初始化參數檔INIT.ORA是一個文本檔,定義了要啟動的資料庫及記憶體結構的大約200多項參數資訊。啟動任何一個資料庫之前,Oracle系統都要讀取初始化參數檔中的各項參數。初始化參數檔的主要內容如下:(1)設置記憶體大小;(2)設置資料庫回滾段;(3)設置要使用的資料庫和控制檔;(4)設置檢查點;(5)設置資料庫的控制結構;(6)非強制性後臺進程的初始化其他Oracle物理檔跟蹤檔(Tracefile):存放著後臺進程的警告和錯誤資訊,每個後臺進程都有相應的跟蹤檔。警告檔(

Alertfile):由連續的消息和錯誤組成,可以看到Oracle內部錯誤、塊損壞錯誤等。備份檔(

Backupfile):包含恢復資料庫結構和數據檔所需的副本。口令檔(

Passwordfile):存放用戶口令的加密檔。Oracle9i資料庫伺服器的總體結構Oracle9i資料庫伺服器由資料庫管理系統和數據庫組成。資料庫管理系統由記憶體結構(PGA和SGA)、後臺進程和服務器進程組成。資料庫主要由數據檔、控制檔和日誌檔組成。Oracle9i資料庫伺服器的總體結構圖記憶體結構記憶體結構是Oracle存放常用資訊和所有運行在該機器上的Oracle程式的記憶體區域。Oracle有兩種類型的記憶體結構:系統全局區SystemGlobalArea,SGA程式全局區ProgramGlobalArea,PGA系統全局區SGA系統全局區(SGA),是客戶機上的用戶進程和服務器上的伺服器進程都使用的記憶體區域。在Oracle例程中,SGA是所有通信的中心,所有的用戶進程和服務器進程都可以訪問這部分內存區域,也就是說SGA內的數據是共用的。在資料庫非安裝階段,當創建例程時,分配SGA;當例程關閉時,釋放SGA。SGA分成4部分:數據緩衝區、字典緩衝區、日誌緩衝區和SQL共用池。程式全局區(PGA)PGA是存儲區中被單個用戶進程使用的記憶體區域。每一個連接到Oracle資料庫的進程都需要自己的PGA,存放單個進程工作時需要的數據和控制資訊,其中包括進程會話變數和數組及不需要與其他進程共用的資訊等。PGA是用戶進程私有的,不能共用。PGA內部的不同部分可以相互通信,但與外界沒有聯繫。後臺進程所謂用戶進程指在客戶機上運行的程式,如客戶機上運行的SQLPlus、企業管理器等,用戶進程向伺服器進程請求資訊。所謂伺服器進程指在伺服器上運行的程式,接受用戶進程發出的請求,根據請求與資料庫通信。Oracle9i資料庫支持成千上百用戶的並行訪問,而且還保證了數據的完整性和高性能,這其中離不開Oracle後臺進程的支持。後臺進程幫助用戶進程和服務器進程進行通信,無論是否有用戶連接資料庫它們都在運行,負責資料庫的後臺管理工作,這也是稱之為後臺進程的原因。系統全局區SMONARCHLGWRDBWRCKPTRECOPMONQMONOracle9i資料庫的後臺進程Oracle9i資料庫的主要後臺進程系統監視進程(SMON):是在資料庫系統啟動時執行恢復性工作的強制性進程。進程監視進程(PMON):用於恢復失敗的資料庫用戶的強制性進程。資料庫寫入進程(DBWR):主要管理數據緩衝區和字典緩衝區的內容,它從數據檔讀取數據,寫入到SGA。日誌寫入進程(LGWR):用於將記憶體中的日誌內容分批寫入到日誌檔中。歸檔進程(ARCH):是可選進程,在當資料庫伺服器以歸檔模式運行時,將已經寫滿的聯機重做日誌檔的內容拷貝到歸檔日誌檔中才發生。檢查點進程(CKPT):是可選進程。用於減少例程恢復時間。恢復進程(RECO):用於分佈式資料庫中的失敗處理,只有在運行分佈式選項時才能使用該進程。鎖進程(LCKn):是可選進程。當用戶在並行伺服器模式下將出現多個鎖進程以確保數據的一致性,這些鎖進程有助於資料庫通信。快照進程(SNPn):快照刷新和內部工作隊列運行計畫的依賴進程。調度進程(Dnnn):是共用伺服器的可選進程。InstanceSGASMONDatafilesControlfilesRedologfilesDatabaseOracle9i實例1.Oracle實例與資料庫2.Oracle實例的組成InstanceSGARedolog

buffercacheSharedpoolDataDict.

cacheLibrarycacheDBWRSMONPMONCKPTLGWROthersUser

processServer

processPGAControlfilesDatafilesArchivedlogfilesParameterfilePasswordfileRedologfilesDatabaseDatabase

buffercache多磁片結構磁片映像結構客戶/伺服器系統共用伺服器系統並行(集群)資料庫系統分佈式資料庫系統OracleWebServer系統Oracle資料庫的應用架構提問回顧說出表空間在Oracle資料庫中的作用?常用的默認表空間中SYSTEM表空間有什麼作用?說出段、區間和數據塊之間的關係。Oracle的物理檔有幾種?說出各種的不同功能?說出後臺進程、用戶進程、伺服器進程之間關係。PGA和SGA之間的區別Oracle實例(例程)與Oracle資料庫系統有什麼關係?引入如何安裝和卸載Oracle資料庫?如何啟動和關閉Oracle資料庫?初步學會使用OEM管理Oracle資料庫。本章主要內容包括:Oracle9i資料庫的安裝Oracle9i的卸載資料庫的啟動與關閉Oracle9i企業管理器的初步使用Oracle9iforWindows2000的安裝與配置1.安裝Oracle9i伺服器安裝步驟將如下列介面所示:圖1啟動介面看到這個介面後,稍等片刻就可以彈出歡迎介面。安裝歡迎介面如圖2所示圖2在歡迎介面上點[下一步],進入[OracleUniversalInstaller:檔定位]對話框,如圖3所示圖3在[路徑]文本框中輸入安裝產品檔的路徑,其他選默認值即可。單擊[下一步]按鈕,進入[可用產品]圖4選中[Oracle9iDatabase.1],單擊[下一步]圖5選擇安裝類型在上個介面中選企業版,執行[下一步],則進入數據庫優化配置介面,如圖6所示圖6選中[通用]按鈕,單擊[下一步],進入圖7介面圖7選擇標識輸入[全局資料庫名]後,單擊[下一步],進入[資料庫檔位置]對話框圖8選擇好資料庫安裝路徑後,點擊[下一步],進入字元集選擇介面,如圖9圖9選擇缺省字元集,單擊[下一步],進入[摘要]介面,如圖10圖10確認如上匯總資訊後,點擊[安裝],進入安裝,如圖11所示。圖11安裝過程中會出現如圖12所示的換盤提示對話框。圖12安裝結束後系統會彈出[配置工具]對話框,讓用戶手動對Oracle進行配置,如圖13所示。圖13在上一步中,一般不需要人工干預,在運行過程中會彈出[資料庫配置助手]介面,如圖14所示圖14配置助手的工作完成以後,系統會彈出如圖15所示的帳戶和密碼設置對話框。圖15完成帳戶和密碼設置以後,系統完成所有配置工作,彈出如圖16所示的安裝結束介面。圖16查看當前Oracle9i伺服器的配置情況圖20企業管理器中-->例程選中查看命令後,進入查看資料庫狀態對話框:圖21查看資料庫狀態如何查看初始化參數檔init.ora的內容,點擊“初始化參數”按鈕,打開“初始化參數”編輯對話框:如何查詢資料庫運行模式:選擇[恢復]選項卡,如下圖:安裝Oracle9i客戶端要從其他電腦上訪問資料庫伺服器,必須要安裝Oracle9i的客戶端軟體。圖25中進行選擇。圖25在上個介面中選擇[下一步],進入圖26的安裝類型圖26設置完成後,系統提供安裝摘要,如圖27圖27檢查無誤後,單擊[安裝],如圖28,開始安裝在兩次換盤後,進入圖30的自動配置介面:圖30在OracleNetConfigurationAssistant自動運行過程中,會彈出如圖31所示的歡迎使用對話框圖31配置網路服務在上個對話框中選擇自己創建網路服務名,單擊[下一步],進入圖32的資料庫版本對話框,選擇更高版本圖32單擊[下一步]後,進入圖33所示的服務名設置。圖33如圖34是網路配置協議圖34圖35是網路配置地址端口圖35圖36為網路配置測試選項圖36圖3.37顯示網路配置成功圖3.37測試成功後,單擊[下一步],回到如圖38所示網路配置服務名對話框。圖38圖39所示對話框為是否進行網路配置下一配置。圖39圖40為網路配置完畢對話框圖40圖41為OracleNet配置完畢對話框圖41上個對話框中點[完成],返回配置進程介面圖42圖42在上個對話框中點[下一步],顯示安裝完成介面圖43伺服器的6種啟動方式啟動Oracle9i資料庫伺服器通常有6種方式。1.正常啟動:startupnormal命令正常方式啟動資料庫時,首先系統啟動資料庫,裝載資料庫,再打開資料庫。默認方式。2.未裝載啟動:startupnomount命令在未裝載資料庫的情況下啟動伺服器,由於未打開資料庫,所以不允許用戶訪問。3.裝載啟動:startupmount命令用裝載方式啟動伺服器時,資料庫被裝載,但不打開資料庫,用戶無法訪問。4.強制啟動:startupforce命令用強制方式啟動資料庫,可以用來啟動未能正常關閉或正常啟動的資料庫伺服器。5.約束啟動:startuprestrict命令用約束方式啟動資料庫時,只有具備限制會話(RestrictedSession)系統許可權的用戶才能連接到資料庫。6.帶初始化參數啟動:startuppfile命令用帶初始化參數的啟動方式,首先讀取參數檔,然後按照參數檔中的設置啟動資料庫。啟動Oracle9i資料庫的三階段及用戶啟動Oracle9i資料庫一般分為以下3個階段:(1)創建一個Oracle例程(非安裝階段);(2)由例程安裝資料庫(安裝階段);(3)打開資料庫(打開階段)。啟動Oracle9i資料庫,用戶必須具有SYSDBA系統許可權。Oracle9i安裝的默認用戶SYS和SYSTEM就已經被授予這種系統許可權。1。在DOS模式下,啟動資料庫伺服器2。在企業管理器中,啟動資料庫伺服器

見操作演示關閉伺服器的4種方式用戶關閉資料庫伺服器,須具備SYSDBA的系統許可權。一般來說,Oracle9i資料庫伺服器4種關閉方式。1.正常方式:等待當前活動的所有用戶斷開連接2.

立即方式:回滾活動的事務處理,並斷開所有用戶連接。3.

中止方式:立即關閉,中斷資料庫例程。4.事務處理關閉方式:在完成事務處理後斷開所有用戶的連接,關閉資料庫。關閉資料庫的三個階段1.

Oracle將重做緩衝區裏的內容寫入重做日誌檔。將資料庫緩衝區內被更改的數據寫入數據檔;關閉數據檔和重做日誌檔;此時控制檔仍然打開,但資料庫不能進行一般性的訪問操作。2.

關閉資料庫例程,卸載資料庫,關閉控制檔,但SGA記憶體和後臺進程仍在執行。3.關閉例程,釋放SGA記憶體,結束所有後臺進程。1。在DOS模式下,關閉資料庫伺服器2。在企業管理器中,關閉資料庫伺服器

見操作演示提問(回顧)Oracle9i資料庫能不能在Windows95中安裝?能不能在WIndows98平臺上安裝?Oracle9i資料庫的運行,通常只需幾個服務?什麼場合用“強制啟動”方式來啟動Oracle資料庫?說出啟動Oracle資料庫的幾個階段?在Dos模式下啟動Oracle資料庫伺服器,需先執行什麼命令?引入(能力目標)學會使用OEM(企業管理器)管理Oracle資料庫?學會使用SQL*PLus執行SQL命令。學會使用SQL*PLUS工作單。學會使用NCA連接Oracle客戶端和服務器端。學會使用DCA管理(新建、刪除)資料庫。學會使用OracleHTTP構建WEB伺服器。Oracle企業管理器SQL*PlusSQL*PlusWorksheet網路配置助手NCA資料庫配置助手DBCAOracleHTTP伺服器知識目標4.1使用Oracle企業管理器(OEM)任務一:登錄Oracle資料庫伺服器任務二:啟動Oracle9i資料庫任務三:

關閉Oracle9i資料庫任務四:管理多個數據庫任務五:生成並查閱當前資料庫的配置資訊(學生試做)從企業管理器登錄Oracle9i資料庫伺服器圖Oracle企業管理器啟動選擇介面任務一:登錄Oracle資料庫伺服器選擇[獨立啟動],單擊[確定],進入如下圖的主介面單擊左側樹狀節點,在資料庫節點上右擊,在彈出菜單中選擇[連接],如下圖:單擊[連接]後,出現登錄資訊確認對話框注:特別強調連接身份的選擇:SYSDBA選擇SYSDBA身份登錄,輸入用戶名和密碼,如圖輸入連接身份,點[確定],連接成功:任務二:啟動Oracle9i資料庫用Oracle企業管理器啟動和關閉Oracle資料庫。選中所需啟動的資料庫實例後右擊,在彈出菜單中選取[啟動]。如圖選擇啟動模式圖1圖2啟動過程任務三:

關閉Oracle9i資料庫選中所需關閉的資料庫,右擊[關閉],如圖1,選擇[立即],[確定],成功後如圖2.圖1圖2任務四:管理多個數據庫選擇[導航器]

[將資料庫添加到樹]。填寫連接資訊:填入相關資訊後,單擊[確定],如圖所示(學生試做)任務五:生成並查閱當前資料庫的配置資訊在主介面中選擇[對象]

[創建報告]命令,如圖設置[創建報告]對話框,選擇生成路徑,做好相應配置。查看生成的配置報告,如圖所示:任務一:登錄sqlplus.exe任務二:使用Help命令任務三:使用SQL*PLUS的命令編輯(學生試做)4.2SQL*PLUS任務一:登錄sqlplus.exe任務二:使用Help命令任務三:使用SQL*PLUS的命令編輯人機交互命令(一)

命令(縮寫)說明Accept(Acc)讀取整行數據並存儲在給定的一個變數中Clear(Cl)清除緩衝區或螢幕內容Connect(Conn)連接到資料庫Disconnect(Disc)斷開到Oracle伺服器的連接Describe(Desc)顯示表、視圖或同義詞等Oracle對象的結構資訊Edit(Ed)打開文本編輯器人機交互命令(二)Host(Hos)執行主機命令Pause(Pau)輸出一行資訊,並等待用戶輸入回車Prompt(Pro)輸出提示資訊SQLPLUS登錄SQL*PlusSet修改SQL*Plus系統變數值和環境變數值Show(Sho)顯示SQL*Plus系統變數或當前環境參數Startup啟動資料庫Spool捕獲查詢結果存儲到一個檔中Shutdown關閉資料庫Exit或Quit退出SQL*PlusSQL*PLus常用的編輯命令命令(縮寫)說明Append(A)在緩衝區中當前行最後添加文本Change(C)用新文本代替舊文本Del刪除緩衝區的一行或多行SQL語句Get調用SQL檔,載入緩衝區List(L)列表顯示緩衝區的SQL命令Run(R)執行當前緩衝區的命令Save(Sav)把緩衝區的內容保存為SQL檔@<腳本名>載入腳本並執行EXECUTE行PL/SQL過程和程式包SQL*Plus的報表命令命令說明TTITLE設置報表標題的格式BTITLE設置報表頁尾的格式COLUMN設置報表中輸出列的格式4.3SQL*Plus工作單

4.4網路配置助手的使用監聽程式監聽程式監聽程式監聽程式監聽程式監聽程式監聽程式命令方法配置命令方法配置命令方法配置命令方法配置4.5資料庫配置助手

4.6OracleHTTP伺服器

Oracle9i除了使用前面的命令行管理、Oracle企業管理器管理和基於管理伺服器的集中管理模式外,還可以使用基於Web的管理模式。在Oracle9i的Web管理模式下,資料庫伺服器運行智能代理,中間層的Apache1.3伺服器是Oracle9i內嵌的HTTP伺服器,管理客戶機上安裝有Java插件和Apache管理器。啟動Oracle的Web管理大致分為以下3個步驟:(1)啟動後臺的資料庫伺服器和智能代理;(2)啟動中間層的管理伺服器和Apache伺服器;(3)執行前臺管理客戶機上的Apache企業管理器。啟動OracleHTTP伺服器選擇【程式】→【Oracle-OraHome90】→【OracleHTTPServer】→【StartHTTPServerpoweredbyApache】

OracleHTTP伺服器配置正常本章主要內容包括:1.SQL概述2.SELECT、INSERT、UPDATE、DELETE3.事務控制命令SQL的特點與命令類型1面向集合的操作語言。2在SQL*PLUS或其他工具中執行。3SQL可以實現嵌入式。SQL語句的三種類型DDL:包含CREATETABLEALTERTABLEDROPTABLECREATEINDEXDROPINDEXDCL:包含GRANTREVOKECOMMITROLLBACKLOCKDML:包含INSERTUPDATEDELETESELECT可移植性和ANSI/ISOSQL標準作為SQL最主要的標準,是在1992年制定,這一標準被非正式地稱為SQL/92,或SQL2。也是人們在引用“SQL標準”的時候所指的版本,通常支持4個不同的執行級別:ENTRY、TRANSITIONAL、INTERMEDIATE和FULL。Oracle9i支持ENTRY級別Oracle9i還支持許多對SQL/92標準的擴展,但這樣就不再可以移植。不在本章討論範圍。Oracle9i中的SQL環境在Oracle9i中,進行SQL語句操作的最主要工具是SQL*PLUS。通過查詢檢索數據查詢介面

應用伺服器Oracle9i伺服器索引記錄書名書號簡介介紹字段本地機數據操作本地查詢示意圖遠程查詢示意圖Oracle9i資料庫被運算元據SQL解釋器.NET部件被運算元據.NET部件SQL解釋器SQL解釋器應用程式TCP/IPselect[all|distinct[on(expression[,…])]]*|expression[asoutput_name][,…][into[temporary|temp][table]new_table][fromfrom_item[,…]][wherecondition][groupbyexpression[,…]][havingcondition[,…]][{union|intersect|except[all]}select][orderbyexpression[asc|desc|usingoperator][,…]][forupdate[ofclass_name[,…]]][limit{count|all}[{offset|,}start]]SQL/92標準中定義的SELECT語句的完整語法考慮到SELECT語句的極端複雜性,這裏給出常用的一般形式:SELECT字段名1,字段名2,…

FROM表名1,[表名2,…]

WHERE條件

ORDERBY列名1,[列名2,…];在查詢中的SELECT子句中建立運算式1算術運算符:主要包括+、-、*、/和%2數學函數:ABS,MOD,POWER,SQRT,TRUNC3字串函數:ASCII,LOWER,UPPER,TO_CHAR,LENGTH。4日期函數:SYSDATE5轉換函數:TO_CHAR,TO_NUMBER,TO_DATE在FROM子句中最多可以指定256個表或視圖,如果所選的列表中存在同名列,應使用對象名限定。但當表名或視圖名很長時會使查詢難以閱讀,這時可以在FROM子句中使用別名。語法如下:FROM表名別名在實際工作中,還可以對表中的列名指定別名。一般語法如下:列名as“別名”,如:selectbooknameas“name”frombookinfo;從表中檢索特定行1範圍運算符例between…and…2列表運算符例in(…)3模式匹配符例%和_分組和排序查詢結果集中的數據ORDERBY子句統計函數:AVG(x)COUNT(x)COUNT(*)MAX(x)MIN(x)STDDEV(x)SUM(x)VARIANCE(x)多表查詢P91.E.5-8,5-9插入、更新和刪除表中行INSERTINTO:字段名應與插入值對應DELETE:按指定條件刪除。要刪除一個大表裏的全部記錄使用TRUNCATETABLE命令。並能釋放佔用的數據塊表空間。UPDATEP.88-97的例1-23。事務控制命令確保把多個SQL語句當作一個工作單元來處理的機制稱為事務。它具有如下特性。一致性:同時進行的查詢和更新不會相互發生衝突,其他用戶不會看到發生了變化但尚未提交的數據可恢復性:在發生系統故障時,資料庫會自動地完全恢復未完成的事務。事務併發控制對事務併發存取不加控制會產生錯誤。丟失修改:指修改間相互覆蓋。讀的不可重複性:指順序執行的存取出錯。髒讀:讀的不一致性。在Oracle9i資料庫系統中,事務是從提交、回滾、連接到資料庫或開始第一條可執行的SQL語句時開始,到一條提交、回滾語句或退出資料庫時結束。DDL語句會隱含執行提交語句。利用回退語句可以在提交命令前撤銷或回退一個事務。可以回退整個事務,也可以回退部分事務,但是不能回退一個已經被提交的事務。回退部分事務的命令為:rollbacktosavepoint保留點名保留點是用戶放入事務中的標記,用來表示一個可被回退的位置。保留點通過在事務中放入一個SAVEPOINT命令而被插入。該命令語法是:Savepoint保留點名如果在ROLLBACK語句中沒有給出保留點,則整個事務被回退。在資料庫的插入、刪除和修改操作時,只有當事務提交到資料庫時才算完成。事務提交前,只有運算元據庫的這個人才能有權看到所做的事情,別人只有在最後提交完成後才可以看到。3種提交類型顯示提交:用COMMIT命令直接完成的提交隱式提交:用SQL命令(ALTER,AUDIT,COMMENT,CONNECT,CREATE,DISCONNECT,DROP,EXIT,GRANT,NOAUDIT,QUIT,REVOKE,RENAME)間接完成的提交自動提交:用SET命令將AUTOCOMMIT設置為ON讀寫事務處理新建立的事務是可讀寫的.一個可讀寫的事務可以包含任何類型的SQL語句,也可以使用SQL命令SETTRANSACTION的READWRITE項來顯式聲明一個事務為可讀寫事務,例如:SETTRANSACTIONREADWRITE;本章內容:表空間的管理數據檔管理回退段管理日誌管理DatabaseLogicalPhysicalTablespaceDatafileOSblockOracle

blockSegmentExtent資料庫存儲層次表空間內涵及分類表空間是Oracle用於物理存儲的結構。表空間存儲段的集合——表和索引。表空間是Oracle資料庫中數據的邏輯組織。一個表空間在操作系統級映射到一個或多個數據檔上。表空間分類:系統表空間 臨時表空間工具表空間用戶表空間數據及索引表空間回滾表空間在企業管理器EM中創建表空間使用SQL語句創建表空間用企業管理器創建表空間“存儲”圖示右鍵單擊[表空間],選“創建”,如圖創建表空間對話框創建表空間的存儲屬性顯示表空間創建成功查看表空間雙擊樹狀目錄的[表空間]圖示可以看到新創建的表空間創建表空間相應的SQL語句CREATETABLESPACEapp_dataDATAFILE'/DISK4/app_data_01.dbf' SIZE100M,'/DISK5/appdata_02.dbf' SIZE100MMINIMUMEXTENT500KDEFAULTSTORAGE( INITIAL 500K NEXT 500K MAXEXTENTS 500 PCTINCREASE 0);手工創建表空間使用SQL命令創建表空間的工具及語法設置表空間的默認存儲參數STORAGE子句用來設置表空間的默認存儲參數,即在表空間中創建新對象而沒有指定存儲參數時,將使用此STORAGE子句的設置值。STORAGE子句的5個子參數如下。

INITIAL:設置分配給新對象的初始區間的大小。

NEXT:設置用戶使用的第一個擴展區間的大小,通常NEXT和INITIAL的值相同。

PCTINCREASE:設置擴展區間的增量百分比,通常設置為0,表示每次增長的擴展區間的大小都是NEXT。

MINEXTENTS:設置分配給一個新對象的最小區間數。通常設置為1。

MAXEXTENTS:設置分配給一個Oracle對象的最大區間數,可以指定一個數目,也可以使用關鍵字UNLIMITED,表明可以無限擴展。例如,創建一個名為NEW_TABLESPACE的表空間,初始空間分配500MB,第一個擴展區間的大小為100MB,可以無限擴展區間數,增量百分比為0SQL語句如下:CREATETABLESPACE"NEW_TABLESPACE"DATAFILE'C:\ORACLE\ORADATA\NBTC\NEW_TABLESPACE.ORA' SIZE500M DEFAULTSTORAGE(INITIAL100MNEXT100MMINEXTENTS1 MAXEXTENTSUNLIMITED PCTINCREASE0);表空間的管理利用企業管理器查看、修改表空間特性。表空間操作菜單選取[查看/編輯表空間]命令,彈出對話框[編輯表空間]對話框利用所示對話框,可以查看和編輯資料庫的各項特性。[編輯數據檔]對話框[一般資訊]選項卡如圖。[編輯數據檔]對話框[存儲]選項卡手工利用SQL命令實現對表空間的查看和修改(1)查看表空間:(2)修改表空間撤銷表空間,如圖手工撤銷表空間使用DROPTABLESPASE命令脫機狀態脫機表空間無法用於數據訪問某些表空間必須聯機:SYSTEM包含活動回滾段的表空間把表空間設置為脫機:把表空間設置為聯機:ALTERTABLESPACEapp_dataOFFLINE;ALTERTABLESPACEapp_dataONLINE;只讀表空間ALTERTABLESPACEapp_dataREADONLY;表空間只能進行讀操作可以從表空間中刪除對象刪除表空間DROPTABLESPACEapp_dataINCLUDINGCONTENTS;從數據字典中刪除表空間內容從數據字典中移走不會刪除OS檔改變表空間的大小修改數據檔的大小自動手動添加數據檔TablespaceAPP_DATA

100Mapp_data_02.dbf

100Mapp_data_01.dbf

100Mapp_data_03.dbf

200M允許數據檔自動擴展ALTERTABLESPACEapp_dataADD DATAFILE'/DISK6/app_data_04.dbf' SIZE200M AUTOEXTENDON NEXT10M MAXSIZE500M;TablespaceAPP_DATAapp_data_02.dbf

100Mapp_data_01.dbf

100Mapp_data_04.dbf

200Mapp_data_03.dbf

200M手動修改數據檔的大小ALTERDATABASE DATAFILE'/DISK5/app_data_02.dbf' RESIZE200M;TablespaceAPP_DATA

100Mapp_data_02.dbf

100Mapp_data_01.dbf

100Mapp_data_04.dbf

200Mapp_data_03.dbf

200M添加數據檔到表空間ALTERTABLESPACEapp_dataADD DATAFILE'/DISK5/app_data_03.dbf' SIZE200M;TablespaceAPP_DATAapp_data_02.dbf

100Mapp_data_01.dbf

100Mapp_data_03.dbf

200M移動數據檔-1:ALTERTABLESPACE表空間必須脫機目標數據檔必須存在ALTERTABLESPACEapp_dataRENAMEDATAFILE '/DISK4/app_data_01.dbf'TO '/DISK5/app_data_01.dbf';移動數據檔-2:ALTERDATABASE

資料庫必須mount.目標數據檔必須存在ALTERDATABASERENAMEFILE'/DISK1/system_01.dbf'TO'/DISK2/system_01.dbf';獲取表空間資訊(數據字典)表空間資訊:DBA_TABLESPACESV$TABLESPACE數據檔資訊:DBA_DATA_FILESV$DATAFILE臨時檔資訊:DBA_TEMP_FILESV$TEMPFILE表空間和數據檔的小結使用多個表空間指定默認的存儲參數為用戶指定表空間限額使用MINIMUMEXTENTS每個表空間可以包含1023數據檔回退段管理回退段用來存放事務處理的恢復資訊,可以利用回退段中的回退記錄對數據庫進行恢復。回退段又稱回滾段,是數據段的一種。Oracle系統安裝時會自動創建名為SYSTEM的回退段,資料庫管理員也可以自行創建並使用自定義的回退段。創建回退段,在EM中的“存儲”節點。也可以使用SQL語句來實現。回退段管理【存儲】

回退段

【創建】

【創建回退段】【創建回退段】

【一般資訊】,用於設置回退段的一般資訊。輸入回退段名稱XXGCXROLLBACKSEGMENT,選擇所在表空間UNDOTBS,在【狀態】欄中選擇【聯機】,使回退段處於聯機狀態。日誌管理日誌檔分為聯機重做日誌檔和歸檔日誌檔。每個資料庫至少包含兩個重做日誌組,在每個重做日誌組裏一般包含了兩個以上的重做日誌檔。這兩個日誌組是迴圈使用的。重做日誌組主要用於資料庫出現故障時進行恢復。重做日誌組和成員Group2Group3Group1MemberDisk1Disk2MemberMemberMemberMemberMember日誌檔在Oracle體系結構的作用InstanceSGAControl

filesDatafilesRedolog

filesDatabaseArchivedlogfilesParameterfilePasswordfileCKPT

DBWRRedolog

bufferDatabuffer

cache

LGWRARCH添加聯機重做日誌組Group1Group2Group3ALTERDATABASEADDLOGFILE(‘/DISK3/log3a.rdo’,‘/DISK4/log3b.rdo’)size1M;log3b.rdolog1b.rdolog2b.rdo添加聯機重做日誌成員log1b.rdoALTERDATABASEADDLOGFILEMEMBER‘/DISK4/log1b.rdo’TOGROUP1,‘/DISK4/log2b.rdo’TOGROUP2;Group1Group2log1a.rdolog2b.rdolog2a.rdo刪除聯機重做日誌組Group1Group2Group3ALTERDATABASEDROPLOGFILEGROUP3;log1b.rdolog1b.rdolog3a.rdolog3b.rdolog1b.rdolog2b.rdo刪除聯機重做日誌成員Group2ALTERDATABASEDROPLOGFILEMEMBER‘/DISK4/log2b.dbf’;Group1log1b.rdolog2b.rdolog1b.rdolog1b.rdo清除聯機重做日誌檔ALTERDATABASECLEARLOGFILE‘/DISK3/log2a.rdo’;例如:歸檔模式Oracle系統的日誌檔以迴圈方式覆蓋寫入日誌項,如果不在日誌檔內容寫滿時將其保存下來,當下一次迴圈到該檔時,其內容將被覆蓋,這樣就會丟失一些日誌資訊,無法保證資料庫恢復時的完全一致性。因此,Oracle資料庫提供了ARCn歸檔進程來執行對數據庫日誌檔的自動歸檔。當一個聯機的日誌檔內容寫滿時,LGWR進程發生日誌切換,開始對下一個日誌檔寫入日誌資訊。而ARCn進程將寫滿內容的日誌檔的內容複製下來,LGWR進程必須等待ARCn進程完成操作後才能覆蓋日誌檔的內容。資料庫運行在歸檔模式下,即所有的重做日誌都將保存下來,這樣資料庫就可以從所有類型的失敗中恢復,包括用戶錯誤及磁片崩潰等。這是一種最安全的資料庫運行模式。資料庫運行的默認模式是非歸檔模式。設置資料庫為歸檔模式表管理索引管理視圖管理同義詞管理序列管理目錄表管理表是資料庫中最基本、最重要的對象,是實際存儲數據的地方。資料庫的許多操作和管理,實際上就是對表的操作和管理。按照功能的不同,表分為系統表和用戶表。系統表又稱數據字典,用於存儲資料庫本身的數據;用戶表是由用戶建立的,用於存放用戶的數據。按照數據保存時間的長短,表分為永久性表和臨時性表。永久性表指表中的數據長期保存,通常所講的表即指永久性表。臨時性表指暫時存放在記憶體中的表。當臨時表不再使用時,由系統自動刪除。列的主要數據類型-1名稱說明CHAR

定長字串VARCHAR2

可變長字串NUMBER

數值型,P(1~38)是有效數字位,S(-84~127)是小數點以後的位數。DATE

從西元前4712年1月1日到西元9999年12月31日的所有合法日期LONG

可變長字串,最大長度是2GBBINARY_FLOAT32位浮點數,需5個位元組存放BINARY_DOUBLE64位浮點數,需9個位元組存放TIMESTAMP

時間戳類型。包括年月日時分秒,RAW

可變長二進位數據LONGRAW

可變長二進位數據列的主要數據類型-1BLOB

大二進位對象,最大長度是4GBNCLOB

基於字元的大對象類型,使用國際字元集,最大長度是4GBCLOB

基於字元的大對象類型,使用資料庫系統字元集,最大長度是4GBBFILE

保存在資料庫外部的大型二進位對象檔,最大長度是4GB。只能讀取不能寫入表的約束主鍵(PrimaryKey):表中的某一列或多列非空而且惟一,用來保證表中每一行的惟一性。惟一鍵(Unique):強制列值對於表中的每一行必須是惟一的。惟一鍵與主鍵的區別在於惟一鍵的列值可以為空。外鍵(Foreignkey):被設置為外鍵的列作為另一個表的主鍵或惟一鍵,規定了兩個表之間的約束關係。檢查(Check):通過用戶規定一個強制性條件,確保列值在指定範圍內。默認值(Default):為表中的某一列設置默認值。當在表中插入一條記錄時,如果該列沒有指定值,將使用默認值。非空(NotNull):確保被設置為非空的列有一個值。創建表-利用SQL命令創建表CREATETABLE[模式名.]表名[字段名1數據類型[DEFAULT運算式]……][表約束子句][PCTFREE整數][PCTUSED整數][INITRANS整數][TABLESPACE表空間子句][STORAGE存儲子句][COLOUM存儲子句][PARTITIONING分區子句][CACHE|NOCACHE][PARALLEL並行子句][ENABLE_DISABLE使能子句][AS子查詢];例使用CREATETABLE命令創建STUDENT表。

CREATETABLEMDX.STUDENT

(

NO CHAR(8)PRIMARYKEY,

NAME VARCHAR2(20)NOTNULL,

SEXCHAR(2)CHECK(SEX=‘男’ORSEX=‘女’),

BIRTHDAYDATE,

CLASSVARCHAR2(20))

/

表已創建。

这里没有指定表的存储参数等子句,Oracle系統將使用所在表空間的默認存儲參數值。創建表-利用【創建表】對話框來創建表接著在表格中定義列的資訊,設置【一般資訊】在Oracle企業管理器中創建表的過程,與之相對應的創建表的SQL語句如下:CREATETABLE"MDX"."COURSE"("CNO“CHAR(6)NOTNULL,"CNAME"VARCHAR2(20)NOTNULL,CONSTRAINT"PK_CNO"PRIMARYKEY("CNO"))TABLESPACE"USERS"

創建表-利用嚮導創建表在Oracle企業管理的導航樹中,右擊【表】檔夾,從彈出的快捷菜單中選擇【使用嚮導創建】選項,出現表嚮導的【簡介】對話框,這裏輸入表名稱為“SCORE”,選擇“MDX”方案及“USERS”表空間列定義主關鍵字定義空約束條件和惟一性約束條件外約束條件檢查約束條件存儲資訊分區資訊概要向新建表插入數據在Oracle企業管理器中,右擊STUDENT表,在彈出菜單中選擇【表數據編輯器】,出現【表編輯器】對話框,這裏可以向該表直接輸入數據,如圖。修改表在Oracle企業管理器中查看表的資訊。選中某一個表後,右擊該表,在彈出的快捷菜單中選擇【查看/編輯詳細資料】選項,出現【編輯表】對話框。修改表的SQL命令是ALTERTABLE語句,其語法:

ALTERTABLE[模式.]表名

ADD[字段1數據類型],,,,, MODIFY[字段1數據類型],,,,, STORAGE子句

例7-2向STUDENT表增加一個為VARCHAR2(100)的MEMO字段。

ALTERTABLESTUDENTADDMEMOVARCHAR2(100);

例7-3修改STUDENT表中的MEMO字段為VARCHAR(200)。

ALTERTABLESTUDENTMODIFYMEMOVARCHAR2(200);

例7-4刪除STUDENT表中的MEMO字段。

ALTERTABLESTUDENTSETUNUSED("MEMO")CASCADECONSTRAINTS;

例7-5改變STUDENT表名稱為STU。

RENAMESTUDENTTOSTU;

RENAMESTUTOSTUDENT;

刪除表

在Oracle企業管理器中刪除表,只需選中要刪除的表,右擊該表,在彈出的快捷菜單中選擇【移去】選項刪除表的SQL語句是DROPTABLE命令。如:

DROPTABLESTUDENT;有關表的數據字典名稱說明DBA_TABLES資料庫中所有表的描述DBA_TAB_COLUMNS所有表的列描述資訊DBA_CONSTRAINTS所有表上約束的定義USER_TABLES所有用戶表描述USER_TAB_COLUMNS用戶表的所有字段描述USER_CONSTRAINTS用戶表的所有約束資訊例:例7-6,7,8,9.索引(INDEX)管理索引(Index)是Oracle對象的一種,為了理解索引概念,考慮SCOTT.DEPT表中的數據:SQL>Select*fromscott.dept;DEPTNODNAMELOC---------------------10ACCOUNTINGNEWYORK20RESEARCHDALLAS30SALESCHICAGO40OPERATIONSBOSTON如果查詢記錄時,一種可能的查詢辦法就是將記錄指針移向表中的第一條記錄,然後逐條記錄地查詢下去,直到找到要查詢的記錄。由於本表只有4行記錄,所以這是較快的查詢辦法,但對於有著成千上萬條記錄的數據表而言,如果仍然採用這種查詢辦法,那將會消耗大量時間,造成系統資源的浪費。索引表中只保存了索引關鍵字和記錄號,相對於對應的資料庫表而言小得多,查詢時根據索引關鍵字,就可以從索引表中找到記錄號,根據記錄號就可以快速的將記錄指針移到與關鍵字相對應的記錄上,從而得到查詢結果。索引表在邏輯上和物理上都獨立於數據,任何時候都可以刪除和重新創建索引表,而且不影響應用程式。一個表可以有多個索引,但也不是索引越多越好。雖然索引可以提高查詢速度,但卻會降低新增、修改和刪除記錄的速度,這是因為Oracle系統在完成這些操作時需要同時更新索引。

在Oracle企業管理器中,選擇左邊導航樹的【方案】節點,右擊【索引】檔夾,在彈出的快捷菜單中選擇【創建】選項。在出現的【創建索引】對話框中創建。輸入索引名稱選擇所在的方案,從表空間下拉列表中選擇所在表空間選擇【索引建於】中的【表】單選鈕,在方案下拉列表中選擇表名稱然後對數據列進行設置,從表格中選中某列,可以看到在次序列中出現“1”,表明將在該列創建索引最後還需設置索引的類型設置好的【創建索引】對話框如下:創建索引創建[索引]對話框SQL語言中創建索引創建索引的命令:CREATEINDEX。CREATEINDEX"MDX"."STUDENT_NAME_INDEX"ON"MDX"."STUDENT"("NAME")TABLESPACE"USERS"查看、修改和刪除索引索引創建成功後,可以在Oracle企業管理器中查看索引資訊。在Oracle企業管理器中修改索引,只需右擊要修改的索引,在彈出的快捷菜單中選擇【查看/編輯詳細資料】選項在Oracle企業管理器中刪除索引,只需選中要刪除的索引,右擊該索引,在彈出的快捷菜單中選擇【移去】選項視圖管理

視圖(View)是從一個或一組表中通過一定的查詢語句創建一個“虛表”。視圖中並沒有存放數據,而僅僅是一條SELECT查詢語句。視圖在表的基礎之上創建,也可以在視圖的基礎之上再創建視圖。視圖在進行插入、更新和刪除數據操作時有所限制,如視圖中有多表聯接,集合函數,GroupBy、ConnectBy、Distinct運算符,視圖不允許修改和刪除。使用視圖的好處(1)附加的安全性如使用視圖限制用戶查看表中的全部數據。(2)隱藏數據的複雜性創建多表查詢結果的視圖。(3)更改的靈活性在兩表連接的視圖共顯示7列,在表A中顯示3列,且在表B中顯示4列。如果表A增加了1列,則對視圖的定義不會產生影響,也不會影響到建立在此視圖的應用程式。(4)簡化編碼工作量通過函數,查看衍生數據,簡化應用程式編碼工作量。創建視圖1.利用創建視圖對話框(P.143)2.利用嚮導(P.144-P.146)3.在視圖中運算元據與在表中運算元據基本一致。4.查看、修改和刪除視圖EM 6.有關視圖的數據字典

USER_VIEWS同義詞(SYNONYM)管理Oracle中的對象的創建者就是對象的擁有者,其他用戶在使用該用戶的對象時,須在對象名稱前加上擁有者名稱。考慮下麵的SQL語句,以SYSTEM用戶登錄,執行語句:

SQL>SELECT*FROMSTUDENT命令執行後,系統提示錯誤資訊如下:ERROR位於第1行:ORA-00942:表或視圖不存在可以看出,系統提示表或視圖找不到。其實,系統中表是存在的,在STUDENT表前面加上擁有者MDX,如下:SQL>SELECT*FROMMDX.STUDENT;再執行,可以正常顯示STUDENT表的數據。同義詞(SYNONYM)從上例子可以看出,如果要操作一個表,或其他的Oracle對象,都要在其名稱前加上擁有者首碼,非常麻煩。為了方便操作,Oracle使用同義詞。同義詞其實就是一個別名,使用同義詞可以讓其他用戶訪問對象而不用添加擁有者首碼。Oracle不僅可以為表、視圖創建同義詞,還可為其他Oracle對象創建同義詞,如函數、包、過程等。Oracle同義詞有公有、私有兩種。公有同義詞由DBA創建,所有用戶都可以訪問私有同義詞只能由創建者自己來使用。創建同義詞

在Oracle企業管理器的導航樹中,右擊【同義詞】檔夾,在彈出的快捷菜單中選擇【創建】選項。公有、私有同義詞創建同義詞命令:CREATE

SYNONYM語句,CREATEPUBLICSYNONYMSTFORMDX.STUDENT以上創建的是公有同義詞。如果省略PUBLIC關鍵字,則創建的是私有同義詞,如CREATESYNONYMSTTFORMDX.STUDENTST所有用戶都可以訪問,STT只能MDX用戶訪問。

P.151的7.4.2公有、私有同義詞示例。序列(Sequence)管理

序列是一個連續的數字生成器。序列可以被設置為上升、下降。當序列第一次被調用時,它將返回一個預定值,在隨後的查詢中序列將產生一個按其指定的增量增長的值。序列可以是迴圈的,也可以是連續增加的,直到一個限制值為止。序列常用於產生惟一鍵(主鍵)。序列作為表中的附加列,可以避免主鍵由多個字段組成的情況。序列有兩個偽列:CurrVal和NextVal。其中CurrVal表示當前的序列值,NextVal表示下一個序列值。

創建序列在Oracle企業管理器的導航樹中,右鍵單擊【序列】檔夾,在彈出的快捷菜單中選擇【創建】選項。創建序列的命令

創建序列語句:CREATESEQUENCE與上圖相對應的創建序列的命令是:CREATESEQUENCE"MDX"."SQ1"INCREMENTBY1STARTWITH1MAXVALUE1.0E28

MINVALUE1NOCYCLECACHE20NOORDER序列示例SQL>CREATETABLET1(IDNUMBER(10,0)NOTNULL,TEXTVARCHAR2(10));表已創建。SQL>INSERTINTOT1VALUES(SQ1.NEXTVAL,'F

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论