oracle復習資料更新2_第1頁
oracle復習資料更新2_第2頁
oracle復習資料更新2_第3頁
已閱讀5頁,還剩9頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第 1 章 Oracle 數據庫概述1.1 Oracle 數據庫簡介問題: Oracle 是什么?Oracle 數據庫系統是一個管理數據的軟件。Oracle 用途? 對數據進行管理(增、刪、改、查)。1.2 Oracle 數據庫新特性?網格計算數據庫Oracle Real Application Clusters 自動存儲管理 信息供應 數據庫自動管理 物化視圖與查詢重寫 閃回版本查詢與閃回錯誤操作 數據泵 其他新特性1.4 Oracle 數據庫應用結構?客戶- 服務器結構 (C/S)終端- 服務器結構 (T/S)瀏覽器 - 服務器結構 ( B/S)分布式數據庫系統 ( D/S)復習題2. 實

2、訓題( 1)根據下列敘述,設計數據庫的 E-R 圖、 學校有若干個系,每個系有若干個班級和教研室,每個教研室有若干個老 師,每個老師帶若干個教學班。每個班有若干個學生,每個學生選修若干門課 程,每門課程可由若干個學生選修。系號系名人數審號鼬f簾號k 1 f也工姓名杵別出宅'日期蝕1T11系有1 !癩室11磁1有nnW 1有n學生m學習n刪哪人數II期學號卄名 杵別灤 fT號名寧分設計數據庫的E-R圖,并轉換為關系模根據下列描述,授課選課系統有如下的實體,屬性及語義描述:每名學生可以學習若干門課程,每門課程可以有若干個學生學習,每名學 生學完一門課程后能得到一個成績。每門課程只由一名教師

3、講授,每名教師只 能授一門課程。學生,課程和教師的信息如下。學生:學號、姓名、性別、年齡、所在系、所屬班級;課程:課程號、課程名、學分;姓名 怦別I】期敦師h咸緘| Jr學習一n課程關系模式如下:教師:教師號、教師姓名、性別、出生日期、職稱、所在系教師(教師號,姓名,性別,出生日期,系,職稱,課程號)課程(課程號,課程名,學分) 學生(學號,姓名,性別,年齡,班級,系)學習(學號,課程號,成績)第3章創建數據庫3.1創建數據庫前的準備問題:怎樣規劃數據庫?確定所要創建的數據庫類型。數據庫類型包括事務處理(OLTP)類型、數據倉庫(DSS)類型及折中的通用類型確定數據的存儲方式確定數據庫的管理方

4、式為新建數據庫選擇全局數據庫名熟悉與數據庫相關的初始化參數,包括初始化參數文件對系統中已存在的數據庫進行備份問題:數據庫的創建方式?使用DBCA創建數據庫運行腳本手工創建數據庫3.3手動創建數據庫P35 create database創建數據庫(重點)3.4數據庫服務器初始化參數文件問題:初始化參數文件存放位置,擴展名?<ORACLE_HOME>database 擴展名.ora復習題2. 實訓題(3)在創建數據庫之前應該做哪些準備工作?創建數據庫之前應該做好規劃、檢查系統資源情況以及決定數據庫的創建方式。(4)說明手動創建數據庫的基本步驟。手動創建數據庫通常包含如下的操作步驟: 確

5、定新建數據庫名稱與實例名稱; 確數據庫管理員的認證方式; 創建初始化參數文件; 創建實例; 連接并啟動實例; 使用CREATE DATABASE 語句創建數據庫; 創建附加的表空間; 運行腳本創建數據字典視圖3. 選擇題(8) Who owns the data diction ary?A.SYSB.SYSTEMC.DBAD.ORACLE答案:A第4章Oracle企業管理器4.1 OEM簡介問題:OEM是什么?是管理Oracle的工具4.4數據庫控制OEM功能界面介紹問題:OEM管理內容有哪些?“主目錄”屬性頁“性能”屬性頁“管理”屬性頁(由“數據庫管理”,“方案管理”,“ Enterpris

6、e Manager"組成)“維護”屬性頁4.5 OEM控制臺設置問題:控制臺是什么?是用戶操作的界面。問題:哪些數據庫用戶能登陸和使用 OEM控制臺?在默認情況下,只有SYS, SYSTEM, SYSMAN H 個數據庫用戶才能登陸和使 用 OEM控制臺。復習題1簡答題(3)說明OraclelOg數據庫控制OEM首選身份證明的類型,以及配置首選省身份證明的目的。答:普通數據庫首選身份證明,主機首選身份證明,SYSDBA首選身份證明。保證被管理的企業環境安全性。2. 實訓題(1)為當前數據庫用戶配置數據庫身份證明。答:略第 5 章 SQL*PLUS5.1 SQL*Plus 概述問題:啟

7、動SQL*Phis方法1.命令行方式啟動SQL*Phis2. 圖形界面方式啟動SQL*Plus3. web瀏覽器啟動SQL*Phis問題:進入和退出sql*Plus的相關命令?進入:sqlplususername/password connect_identifier lNOLOG退出:exit5.2 SQL*Phis常用命令問題:可以在SQL*Plus中執行哪些語句?SQL語句、PL/SQL程序和SQL*Phis命令。(了解SQL*Plus連接命令,編輯命令寫法P61 了解腳本文件的創建、裝載與編 輯、執行 P62 P63了解其他常用命令中的顯示數據庫對象結構,修改用戶命令P70)5.3iS

8、QL*Phis問題:iSQL*Plus 與SQL*plus的區別? ISQL*PLUS 是個網頁版的查詢, SQL*PLUS是基于命令行的。復習題:1簡答題(6)在啟動和登錄iSQL*Plus之前,在數據庫服務器端需要啟動哪些服務 ?答:OracleService<SID>,Oracle<ORACLE_HOME_NAME>TNSListener, Oracle<ORACLE_HOME_NAME>iSQL*Plus第6章物理存儲結構6.1 Oracle數據庫系統結構問題:Oracle數據庫系統結構由什么構成?Oracle數據庫系統結構由數據庫實例和物理存儲結構

9、組成。讀懂圖6 1圖6 26.2數據文件及其管理問題:數據文件有哪些?(就是數據庫的物理結構)數據文件,控制文件,重做日志文件歸檔文件,初始化參數文件,跟蹤文件,口令文件,警告文件備份文件清楚他們的擴展名1. 創建數據文件實例p77例1.例22修改數據文件大小實例p77例3.例4.例5。例96.4重做日志文件問題:重做日志文件概念重做日志文件,保存了用戶對數據庫所作的更新操作 (DDL、DML),包含的主 要信息是記錄事務的開始和結束、事務中每項操作的對象和類型、更新操作前后的數據值等。添加重做日志文件組成員實例 P91復習題1. 簡答題簡單描述Oracle數據庫體系結構的及其關系。Oracl

10、e數據庫體系結構由物理存儲結構、邏輯存儲結構和實例組成。其中物理 存儲結構描述了操作系統層次數據的存儲與管理,包括數據文件、日志文件、 重做日志文件等組成。邏輯結構描述了數據庫內部數據的組織與管理,由表空 間、段、區、塊組成。實例是數據庫運行的軟件結構,由內存結構和后臺進程 組成。數據庫運行過程中,用戶的操作在內存區中進行,最終通過后臺進行轉 化為對數據庫的操作。2. 實訓題為USERS表空間添加一個數據文件,文件名為USERS03.DBF,大小為50MoALTER TABLESPACE USERADD DATAFILE 'D:ORACLEORADATAORCLuserdata03.d

11、bf,SIZE 50M 5;(8) 為新建的重做日志文件組添加一個成員文件,名稱為 redo4c.log。ALTERDATABASEADDLOGFILEMEMBERtD:ORACLEORADATAORCLredo04c.log TO GROUP 4;3. 選擇題(4) Complete the follow ing senten ce: The recomme nded con figurati on for con trol files is?A. One the con trol file per database B. One con trol file per diskC. Two c

12、ontrol file on two disk D. Two control files on one disk 答: B(8) Which file is used to record all cha nces made to the database and is used only whe n perform ing an in sta nee recovery?A. Archive log file B. Redo log file C. Control file D. Alert log file 答:B第7章邏輯存儲結構7.1邏輯存儲結構概述問題:OraclelOg數據庫邏輯存儲結

13、構之間的關系?參見pl02圖7-1問題:數據庫、表空間、數據文件、數據庫對象之間的關系?參見pl03圖7-27.2表空間表空間的管理實例1. 創建表空間P106例4。例52. 修改表空間pl07 例8.例12 o例137.3 數據塊(BLOCK)問題:PCTFREE 參數,PCTUSED參數含義?PCTFREE參數指定塊中必須保留的最小空閑空間比例。PCTUSED參數指定可以向塊中插入數據時塊已使用的最大空間比例。7.4區問題:與區分配相關的存儲參數?INITIAL,NEXT,PCTINCREASE,MINEXTENTS,MAXEXTENTS7.5段問題:段的分類?數據段:用來存儲表或簇的數據

14、,可以細分為表數據段、索引表數據段、分區 表數據段及簇數據段四種。復習題1. 簡答題(1)說明數據庫邏輯存儲結構的組成和相互關系。Oracle9i數據庫的邏輯存儲結構分為數據塊、區、段和表空間四種。其中,數據 塊是數據庫中的最小I/O單元,由若干個連續的數據塊組成的區是數據庫中最小 的存儲分配單元,由若干個區形成的段是相同類型數據的存儲分配區域,由若 干個段形成的表空間是最大的邏輯存儲單元,所有的表空間構成一個數據庫。說明數據庫、表空間、數據文件以及數據庫對象之間的關系。一個數據庫由一個或多個表空間構成,不同的表空間用于存放不同應用的數據,表空間的大小決定了數據庫的大小。一個表空間對應一個或多

15、個數據文件,數 據文件的大小決定了表空間的大小。一個數據文件只能從屬于一個表空間。一 個數據庫對象只能存儲在一個表空間中,但可以存儲在該表空間所對應的一個 或多個數據文件中。2. 實訓題 使用SQL命令創建一個本地管理方式下的表空間USERTBS2,要求每個 分區大小為512KBOcreate tablespace USERTBS2datafile 'd:oracleoradataorclusertbs2.dbf size 50Mextent management local uniform size 512K; 為USERTBS2表空間添加一個數據文件,以改變該表空間的大小。alte

16、r tablespace USERTBS21add datafile d:oracleoradataorclusertbs2a.dbf size 50M;使用SQL命令對USERTBS1表空間進行聯機和脫機狀態轉換。alter tablespace USERTBS1 offli ne;alter tablespace USERTBS1 online;(4)PCTFREE and PCTUSED together should n ot exceed:A.100B.50C.20D.10答:A(8) The sort segment of a temporary tablespace is cre

17、ated;A. at the time of the first sort operationB. when the TEMPORARY tablespace is createdC. when the memory required for sorting is IkbD. all of the above答:A(12)RolIback segment stores:A. old values of the data changed by each transactionB. new values of the data changed by each transactionC. both

18、old and new values of the data changed by each transactionD. none答: A第八章數據庫實例8.20racle 內存結構問題: Oracle 內存區域的分類?系統全局區(SGA)和程序全局區(PGA)第 11 章模式對象創建表、索引、視圖實例添加約束 ( 主鍵約束、唯一性約束、檢查約束、外鍵約束、空 / 非空約束 )第 12 章安全管理12.2用戶管理問題: Oracle 初始用戶有哪些?SYS, SYSTEM, SCOTT, PUBLIC創建用戶實例 p212 例 1. 例 212.3權限管理系統的授權于撤銷授權實例 p218第

19、13 章 數據庫備份與恢復13.1備份與恢復概述 問題:備份與恢復的作用 數據庫備份與恢復的目的就是為了保證在各種故障發生后,數據庫中的數據都 能從錯誤狀態恢復到某種邏輯一致的狀態。第 15 章 SQL 語言基礎熟練各項查詢語句。15.4 事務控制 問題:事物是什么? 是完成一個任務的一段程序第 16 章 PL/SQL 程序設計(重要章節)16.2PL/SQL 基礎 問題: PL/SQL 塊的組成部分? 聲明部分、執行部分、異常處理部分 定義一個 PL/SQL 塊 p332 例 1. 例 3 用戶記錄類型的定義 p33916.3 控制語句 選擇結構: if 語法 case 語法 循環結構 :

20、loop 語法 while 語法 for 語法 都會用到實例中,要熟練運用16.4 游標( 考顯示游標題一道 ) 游標包括顯示游標和隱式游標 游標的定義:語法CURSOR cursor_name IS select_statement 打開:語法OPEN cursor_name; 檢索:語法格式 FETCH cursor_name INTO variable_listlrecord_variable; 關閉:語法格或CLOSE cursor_name; 參數化顯式游標實例 如:查詢并輸出某個部門的員工信息 DECLARECURSOR c_emp(p_deptno emp.deptno % TY

21、PE)ISSELECT * FROM emp WHERE deptno=p_deptno; v_emp c_emp % ROWTYPE;BEGINOPEN c_emp(10);LOOPFETCH c_emp INTO v_emp; EXIT WHEN c_emp%NOTFOUND; DBMS_OUTPUT.PUT_LINE(v_emp.empnoll' 'llv_emp.ename);END LOOP;CLOSE c_emp;OPEN c_emp(20);LOOPFETCH c_emp INTO v_emp;EXIT WHEN c_emp%NOTFOUND; DBMS_OUTP

22、UT.PUT_LINE(v_emp.empnoir 'llv_emp.ename);END LOOP;CLOSE c_emp;END;16.5異常處理了解異常處理的寫法 ( exception end)16.6存儲子程序存儲過程的創建CREATE OR REPLACE PROCEDURE procedure_name(parameterl_name mode datatypeDEFAULTI:=value,parameter2_name mode datatypeDEFAULTI:=value,.)ASUS/.Declarative section is here */BEGIN/*E

23、xecutable section is here*/EXCEPTION/*Exception section is here*/ENDprocedure_name;函數的創建基本語法為CREATE OR REPLACE FUNCTION function_name(parameterl_name mode datatypeDEFAULTI:=value,parameter2_name mode datatypeDEFAULTI:=value,.)RETURN return_datatypeASUS/*Declarative section is here */BEGIN/*Executabl

24、e section is here*/EXCEPTION/*Exception section is here*/END function_name;注意看書上的扇題。16.7 包包的創建語法CREATE OR REPLACE PACKAGE package_nameISIASPRAGMA SERIALLY_RESUABLEtype_definitionlvariable_declarationl exception_declarationlcursor_declarationl procedure_ declarationlfunction_ declarationEND package_n

25、ame; 注意看書上的扇題。存儲過程和函數各考一個,寫在包中、16.8 觸發器(考一道)問題:觸發器分類?DML 觸發器:建立在基本表上的觸發器,響應基本表的 INSERT, UPDATE, DELETE 操作。INSTEAD OF 觸發器系統觸發器16.9集合看 P393 最下面那道例題復習題( 4) 創建一個存儲過程,以員工號為參數,修改該員工的工資。若該員工屬于10 號部門,則工資增加 150;若屬于 20號部門,則工資增加 200;若屬于 30號 部門,則工資增加 250;若屬于其他部門,則工資增加 300.CREATE OR REPLACE PROCEDURE UPDATESAL(p

26、_empno emp.empno %TYPE )ASv_deptno emp.deptno % TYPE;v_inc emp.sal%TYPE;BEGINSELECT deptno INTO v_deptno FROM emp WHERE empno=p_empno;CASE v_deptnoWHEN 10 THEN v_inc:=150;WHEN 20 THEN v_inc:=200;WHEN 30 THEN v_inc:=250;ELSE v_inc:=300;END CASE;UPDATE emp SET sal=sal+v_inc WHERE empno=p_empno;END;( 5

27、) 創建一個存儲過程,以員工號為參數,返回該員工的工作年限(以參數形 式返回)。答: CREATE OR REPLACE PROCEDURERETURN_GZNX ( p_empno emp.empno%type,p_gznx out number )ASv_gznx NUMBER(2);BEGINSELECT trunc(months_between(sysdate,hiredate)/12)INTO v_gznx FROM emp WHERE empno=p_empno;p_gznx:=v_gznx;EXCEPTIONWHEN NO_DATA_FOUND THEN DBMS_OUTPUT.

28、PUT_LINE(1 無此員工 ,) ;END;(8) 創建一個函數,以部門號為參數,返回該部門的平均工資。CREATE OR REPLACE FUNCTION RET_AVGSAL(p_deptno emp.deptno%type) RETURN emp.sal%typeASv_avgsal emp.sal%type;BEGINSELECT avg(sal) INTO v_avgsal FROM emp WHERE deptno=p_deptno;IF v_avgsal IS NULL THEN DBMS_OUTPUT.PUT_LINE(,無此部門!, ) ;RETURN 0;ELSERET

29、URN v_avgsal;END IF;END;(9) 創建一個函數,以員工號為參數,返回該員工所在部門的平均工資。CREATE OR REPLACE FUNCTIONRET_AVGSAL_EMPNO(p_empno emp.empno%type)RETURN emp.sal%typeASv_deptno emp.deptno%type;v_avgsal emp.sal%type;BEGINSELECT deptno INTO v_deptno FROM emp WHERE empno=p_empno;SELECT avg(sal) INTO v_avgsal FROM emp WHERE d

30、eptno=v_deptno;RETURN v_avgsal;EXCEPTIONWHEN NO_DATA_FOUND THENDBMS_OUTPUT.PUT_LINE( 6 無此員 工!,) ;RETURN 0;END;(10) 創建一個包,包中包含一個函數和一個過程。函數以部門號為參數,返 回該部門員工的最高工資;過程以部門號為參數,輸出該部門中工資最高的員 工名、員工號。Create or replace package pkg_emp asfunction func_highsal(p_deptno emp.deptno%type) return emp.sal%type;procedu

31、re proc_highsal(p_deptno emp.deptno%type) ; end ; /create or replace package body pkg_empas function func_highsal(p_deptno emp.deptno%type)return emp.sal%typeas v_highsal emp.sal%type ;beginselect max(sal) into v_highsal from emp where deptno=p_deptno ;return v_highsal ;end ;procedure proc_highsal(p

32、_deptno emp.deptno%type)asbeginfor v_emp in (select * from emp where deptno=p_deptno and sal=func_highsal(p_deptno) loopdbms_output.put_line(v_emp.empno| 11 'I |v_emp.ename) ;end loop ;end ;end ; /beginpkg_c_highsal(10) ;end ;(11) 創建一個包,包中包含一個過程和游標。游標返回所有員工的信息;存 儲 過程實現每次輸出游標中的 5 條記錄。答: cr

33、eate or replace package pkg_persistcursorascursor c.emp is select * from emp;procedure displayemp ;end ;create or replace package body pkg_persistcursorAs procedure displayempAs v_emp emp%rowtype ;beginif not c_emp%isopen thenopen c_emp ;end if ; for i in 1 .5 loopfetch c_emp into v_emp ; dbms_outpu

34、t.put_line(v_emp.empno| 11 111 v_emp.ename) ;end loop ;end;end;/begin pkg_persistcursor.displayemp ;end ;(14)在 emp 表上創建一個觸發器,保證修改員工工資時,修改后的工資低于 部門最高工資,同時高于該部門最低工資。答: create or replace package pkg_deptnoas v_deptno emp.deptno%type ;v_sal emp.sal%type ;end ; / ?create or replace trigger trg_updateemp

35、before update on emp for each row beginpkg_deptno.v_sal :=: new.sal ; pkg_deptno.v_deptno : =: new.deptno ; end ; /?create or replace trigger trg_statement after update on emp declare v_highsal emp.sal%type ; vjowsal emp.sal%type ; beginselect max(sal) 5min(sal) into v_highsal,v_lowsalfrom emp where deptno= pkg_deptno.v_deptno ;if pkg_deptno.v_sal>v_highsal or pkg_deptno.v_sal&l

溫馨提示

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

評論

0/150

提交評論