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

提交评论