人人范文网 范文大全

Oracle数据库管理习题及答案

发布时间:2020-03-03 02:28:05 来源:范文大全 收藏本文 下载本文 手机版

1.6习题

一.填空题

1、关系模型提供了3类完整性规则,分别是_______、_______、_______。 参考答案:实体完整性规则、参照完整性规则、用户定义的完整性规则

2、RDBMS由两部分组成,即_______、_______两部分。 答案:数据库系统内核、数据字典

3、关系数据库模型支持三种类型的表关联关系:_______、_______、_______。 答案:一对

一、一对多以及多对多

4、数据模型的种类有很多,例如_______、_______、_______和_______等。目前理论最成熟、使用最普及的是_______。

答案:层次模型、网状模型、关系数据模型、面向对象模型。关系数据模型

二、选择题

1、Oracle 11g版本号中字母“g”的含义是()

A.产品类型的“代”( generation) B.网格(gridding)

C.集成(integration)

D.无含义

答案:A

2、设计性能较优的关系模式称为规范化,规范化主要的理论依据是(

A.关系规范化理论

B.关系运算理论 C.关系代数理论

D.数理逻辑

答案:A

3、消除了部分函数依赖的1NF的关系模式必定是(

A.1NF B.2NF C.3NF D.4NF

答案:B

4、当B属于函数依赖于A属性时,属性B与A 的联系是( )

A.1对多B.多对1

C.多对多 D.以上都不是 答案:B

5、根据关系数据库规范化理论,关系数据库中的关系要满足第一范式。下面“部门”关系中,因哪个属性而使它不满足第一范式?

部门(部门号,部门名,部门成员,部门总经理) A.部门总经理

B.部门成员 C.部门名

D.部门号

答案:B

6、下列不属于Oracle数据库数据类型的是(

A.NUMBER B.FLOAT C.CLOB D.BOOLEAN 答案:D

三、简答题

1、简述数据库与数据库管理系统的区别。

参考答案:数据库是用来存储信息或数据的机制,是按照数据结构来组织、存储和管理数据的仓库。可以被定义为是在计算机存储设备上合理存放的,互相关联的数据集合。

数据库管理系统,它是基于某种结构数据模型、以统一的方式管理和维护数据库,并提供访问数据库接口的通用软件。

2、简述数据库规范化的概念及其作用。

参考答案:数据库规范化,又称数据库或资料库正规化、标准化,是数据库设计中的一系列原理和技术,以减少数据库中数据冗余,增进数据的一致性。

四、应用题

1、设有一教学管理数据库,其属性为:学号(S#),课程号(C#),成绩(G),任课教师(TN),教师所在的系(D)。这些数据有下列语义:

– 学号和课程号分别与其代表的学生和课程一一对应。 – 一个学生所修的每门课程都有一个成绩。

– 每门课程只有一位任课教师,但每位教师可以有多门课程。 – 教师中没有重名,每个教师只属于一个系。

(1)试根据上述语义确定函数依赖集。

(2)如果用上面所有属性组成一个关系模式,那么该关系模式为何模式?并举例说明在进行增、删操作时的异常现象。

(3)分解为具有依赖保持和无损连接的3NF。

参考答案:

(1)F={(S#,C#)→G,C#→TN,TN→D} (2)关系模式为1NF,因为该关系模式的候选码为(S#,C#),则非主属性有G,TN和D。

又∵F中有C#→TN,∴存在非主属性TN对候选码(S#,C#)的部分依赖,即: 若新增设一门课程而暂时还没有学生选修时,则因缺少码S#值而不能进行插入操作。若某个教师调离学校要删除有关信息时,会将不该删除的课程(C#)信息删除。 (3)∵Fm={(S#,C#)→G,C#→TN,TN→D} ∴ρ={R1,R2,R3} 其中:

– R1=(S#,C#,G) – R2=(C#,TN) – R3=(TN,D)

2.7习题

一、填空题

1、常用的Oracle服务主要有如下四种,分别是_______、_______、_______、_______。 参考答案:OracleDBConsoleorcl、OracleJobScheduler、OracleService、

OracleTNSListener

2、Oracle数据库启动的三个阶段是:_______、_______、_______。 参考答案:启动实例、打开控制文件、打开数据库

3、Oracle数据库关闭的四个选项是:_______、_______、_______、_______。 参考答案:normal、immediate、transaction、abort

二、选择题

1、系统标识符(SID)是指唯一在网络域中区别于其他数据库的数据库实例名,下面合法的SID是(

A.my2orcl

B.myoracletest C.my_orcl D.my@orcl 参考答案:A

2、安装Oracle Database 11g可以选择安装类型,下列不属于Oracle Database 11g的安装类型是(

A.企业版

B.个人版

C.定制 D.免费版

参考答案:D

三、简答题

1、简述Oracle Database 11g在Windows系统下的安装步骤。

参考答案:选择安装方法、选择安装类型、指定主目录详细信息、产品特定的先决条件检查、选择配置选项、安装、安装结束。

2、简述Oracle中用户和模式的关系。

参考答案:用户是用连接数据库和访问数据库对象的。模式是数据库对象的集合。模式对象是数据库数据的逻辑结构。通俗地说,模式是用来创建oracle中各种对象,而用户用来连接数据库并访问模式中对象,在oracle中模式与用户是一一对应关系。

四、上机练习

1、按照书中步骤,正确安装Oracle Database 11g,创建数据库,并且创建用户。

2、从操作系统提示符界面,采用上题创建的用户登录数据库,并创建EMPLOYEES表进行测试。(表结构如下图)

3、客户端连接Oracle数据库时,默认端口为1521。创建一个新的监听程序,其端口为1522。然后将ORCL注册于该监听程序。

3.5 习题

一、填空题

1.查看表结构时,所使用的命令是___________,该命令可以简写为___________。 参考答案:DESCRIBE、DESC 2.使用SQL*Plus语句快速编辑SQL语句时,可以使用的命令有APPEND(可以简写为A)命令、___________ (可以简写为C)命令、___________(可以简写为I)、___________(可简写为L)命令,以及RUN(可以简写为R)命令。

参考答案:CHANGE、INPUT、LIST

3.在SQL*Plus工具中,可以使用SAVE命令将缓冲区内容保存到文件;可以使用___________命令读取并运行文件内容;可以使用___________命令编辑缓冲区内容或文件内容;还可以使用SPOOL命令复制输出结果到文件。

参考答案:START、EDIT 4.在SQL语句中,如果在某个变量前面使用了&符号,那么就表示该变量是一个临时变量。定义变量,可以使用___________或ACCEPT命令;删除变量,可以使用UNDEFINE命令。

参考答案:DEFINE 5.在SQL*Plus中格式化查询结果时,COLUMN命令可以对列格式化显示效果,PAGESIZE命令可以___________,LINESIZE命令可以___________。

参考答案:设置页的大小、设置行宽度

6.创建简单报表时,使用___________命令和___________命令,分别为报表设置页眉和页脚信息。

参考答案:Ttitle、Btitle

二、选择题

1.在SQL*Plus中连接数据库时,可以使用CONNECT命令。下面的4个选项中,哪个命令是正确的?其中,用户名为scott,密码为tiger,数据库名为orcl。(

A.CONNECT scott/tiger ; B.CONNECT tiger/scott ; C.CONN scott/tiger as sysdba ; D.CONN scott/tiger@orcl as sysdba ; 参考答案:D 2.执行语句SAVE scott_emp_query.sql APPEND,执行结果表示(

)。

A.如果scott emp_query.sql文件不存在,则出现错误 B.如果scott emp_query.sql文件已经存在,则出现错误

C.将缓冲区中的内容追加到scott_emp_query.sql文件中。如果该文件不存在,会创建该文件

D.将缓冲区中的內容替换掉scott_emp_query.sql文件的内容。如果该文件不存在,会创建该文件

参考答案:C 3.使用SQL*Plus中的___________,可以将文件中的内容检索到缓冲区,并且不执行。(

A.SAVE命令 B.GET命令 C.START命令 D.SPOOL命令 参考答案:B 4.下面是有关变量的描述,请问哪些描述是正确的?(

A.临时变量是指仅在某个SQL语句中有效的变量 B.临时变量是在某个会话期间有效的变量

C.已定义变量是指明确定义,其生命期至显式地删除、重新定义或退出SQL*Plus为止

D.已定义的变量是不能被删除的 参考答案:B、C

5.如果希望控制列的显式格式,那么可以使用下面的___________命令(

A.SHOW B.DEFINE C.SPOOL D.COLUMN 参考答案:D

三、简答题

1.使用DESCRIBE命令,查看scott用户的dept表的结构信息。 参考答案:descscott.dept 2.使用SAVE命令将缓冲区内容写入到e:\test.sql文件中;然后使用START命令将文件中的內容读入到缓冲区,并且进行执行。

参考答案:savee:\test.sql

Start e:\test.sql 3.执行下列语句,观察输出结果: DEFINE temp = 5000 SELECT empno , ename , mgr FROM scott.emp WHERE sal >= &temp ; 参考答案:略

4.对scott用户的emp表的输出信息进行格式设置。其中,empno列设置标题为“员工编号”,NUMBER格式为9999;ename列设置标题为“员工名称”,格式设置为25个字符;hiredate列设置标题为“受雇日期”,并且标题居中显示。

参考答案:col empno heading„员工编号‟ format 9999; col ename heading „员工名称‟ for A25; col hiredate heading‟受雇日期‟ justify center; 5.设置一页显示30行数据,并且设置一行显示130个字符,然后输出scott用户的emp表的全部信息。

参考答案:SET PAGESIZE 30

SET LINESIZE 130

SELECT * FROM SCOTT.EMP

四、操作练习

下载SQL Developer,建立Oracle数据库的连接,按照书中所述步骤,操作熟悉SQL Developer的使用。

4.5 习题

一、填空题

1.如果需要在SELECT子句中包括一个表的所有列,可以使用符号___________。 参考答案:* 2.WHERE子句可以接收FROM子句输出的数据;而HAVING子句可以接收来自FROM、___________或___________子句的输出的数据。

参考答案:WHERE、GROUP 3.在SELECT语句中,分组条件的子句是___________,对显示的数据进行排序的子句是___________。

参考答案:GROUP BY、ORDER BY 4.在DML语句中,INSERT语句可以实现插入记录,___________语句可以实现更新记录,___________语句和___________语句可以实现删除记录。

参考答案:UPDATE、DELETE、TURNCATE 5.___________函数可以返回某个数值的ASCII值,___________函数可以返回某个ASCII值对应的十进制数。

参考答案:ASCII、CHR 6.使用___________函数,可以把数字或日期类型的数据转换成字符串;使用TO_DATE函数,可以把___________转换成___________,默认的日期格式为___________。

参考答案:TO_CHAR、字符串、日期型、yyyy-MM-dd HH:mm:

二、选择题

1.查询scott用户的emp表中的总记录数,可以使用下列哪个语句?(

A.SELECT MAX(empno) FROM scott.emp; B.SELECT COUNT(empno) FROM scott.emp; C.SELECT COUNT(comm) FROM scott.emp; D.SELECT COUNT(*) FROM scott.emp; 参考答案:D 2.为了去除结果集中的重复行,可以在SELECT中使用下列哪个关键字?( )

A.ALL

B.DISTINCT C.UPDATA D.MERGE 参考答案:B 3.在SELECT语句中,HAVING子句的作用是( )

A.查询结果的分组条件

B.组的筛选条件 C.限定返回的行的判断条件

D.对结果集进行排序 参考答案:B 4.下列哪个聚合函数可以把一个列中的所有值相加求和?(

A.MAX函数

B.MIN函数 C.COUNT函数 D.SUM函数 参考答案:A 5.如果要统计表中有多少行记录,应该使用下列哪个聚合函数?(

A.SUM函数

B.AVG函数 C.COUNT函数 D.MAX函数 参考答案:C

三、简答题

1.标准SQL语言的语句类型可以分为哪三大类,每种语句类型分别用来操纵哪些语句?

参考答案:数据操纵语言(DML):用来操纵数据库中数据的命令。包括:select、insert、update、delete。

数据定义语言(DDL):用来建立数据库、数据库对象和定义列的命令。包括:create、alter、drop。

数据控制语言(DCL):用来控制数据库组件的存取许可、权限等的命令。包括:grant、deny、revoke。

2.列举几个在WHERE条件中可以使用的操作符。

参考答案:使用 =、>、>=、符号和 BETWEEN 。。。AND 。。。、IN(set)、LIKE、IS NULL 。

3.如果要按照降序对数据进行排序,应该在ORDER BY子句中使用哪个关键字? 参考答案:DESC 4.下面这个SELECT语句能否输出查询结果?如果不能,该如何修改?

SELECT empno , ename , deptno , COUNT (*) FROM scott .emp GROUP BY deptno 参考答案:不能。

SELECT deptno , COUNT (*) FROM scott .emp GROUP BY deptno

5.指定一个日期值,例如08-8月-2008,获得这个日期与系统当前日期之间相隔的月份数和天数。

参考答案:select months_between('08-8月-2008', sysdate) mon_betw from dual;

5.8 习题

一、填空题

1.按照约束的用途,主要可以将表的完整性约束分为NOT NULL约束、___________、___________、___________和___________。

参考答案:Check、Unique Index、Primary key、Foreign key 2.使用___________关键字,可以快速删除表中的所有记录,并且不在撤消表空间中记录撤消数据。

参考答案:TRUNCATE

3.___________约束用于定义列中不能出现NULL值,___________约束用于定义列中不能出现重复值,而PRIMARY KEY约束则可以定义列中既不允许出现NULL值,也不允许出现重复值。

参考答案:NOT NULL、UNIQUE

二、选择题

1.存储数据123.45,可以使用下面哪种数据类型?(

) A.NUMBER

B.NUMBER(5) C.NUMBER(5,3) D.NUMBER(5,2) 参考答案:D 2.如果某列定义了UNIQUE约束,则(

) A.该列不允许出现重复值。

B.该列不允许出现NULL值。 C.该列內允许出现一个NULL值。

D.该列允许出现多个NULL值。 参考答案:A 3.为列定义一个CHECK约束,希望该约束能对表中已存储的数据,以及以后向表中添加或修改的数据都进行检查,则应该将该约束设置为如下哪种状态?(

A.ENABLE VALIDATE

B.ENABLE NOVALIDATE C.DISABLE VALIDATE

D.DISABLE NOVALIDATE 参考答案:A 4.使用如下语句创建一个临时表空间temp:

CREAT _________ TABLESPACE temp

_________‘F:\oraclefole\temp.dbf’

SIZE 10M

AUTOEXTENT ON

NEXT 2M

MAXSIZE 20M;

请从下列选项中选择正确的关键字补充上面的语句。(

) A.(不填)、DATAFILE

B.TEMP、TEMPFILE C.TEMPORARY、TEMPFILE

D.TEMP、DATAFILE 参考答案:C 5.下列关于约束与索引的说法中哪一项是不正确的?(

) A.在字段上定义PRIMARY KEY约束时会自动创建B树惟一索引 B.在字段上定义UNIQUE约束时会自动创建B树惟一索引

C.在默认的情况下,禁用约束会删除对应的索引,而激活约束会自动重建相应的

索引

D.在定义FOREIGN KEY 约束时会创建B树唯一索引 参考答案:D

三、简答题

1.比较VARCHAR2与CHAR两种数据类型的区别,并举例说明分别在什么情况下使用这两种数据类型。

参考答案:CHAR的长度是固定的,VARCHAR2的长度是可以变化的,存储字符串“ABC",对于CHAR (10),表示存储的字符将占10个字节(包括7个空字符),而同样的VARCHAR2 (10)则只占用3个字节的长度,10只是最大值,当你存储的字符小于10时,按实际长度存储。VARCHAR2比CHAR节省空间,在效率上比CHAR会稍微差一些。

2.创建一个表后,为表中的某列添加CHECK约束,并分别设置该约束的状态为4种不同的状态,比较这4种状态下的约束检查效果。

参考答案:略

3.建立一个学生表,表结构如下stu_info ( stuid number,name varchar(20),age number (2),sex char(2),birthday date) (1)在数据库中建立stu_info表。

(2)添加主键约束(stuid) (3)添加 check约束(插入的年龄必须大于19岁)

(4)添加 非空约束 (要求姓名不能为空值)

(5)给上面的表添加 唯一约束(要求姓名不可重复) 参考答案:

(1) create table stu_info( stuid number, name varchar(20), age number(2), sex char(2), birthday date); (2) ALTER TABLE stu_info ADD CONSTRAINT stu_info _pk PRIMARY KEY (stuid); (3) ALTER TABLE stu_info

ADD CONSTRAINT age_checkcheck(age>19); (4) alter table stu_info modify name not null; (5) ALTER TABLE stu_info ADD CONSTRAINT name_uniunique(name); 6.8习题

一、填空题

1.为了保证在SQL>方式下进行INSERT、DELETE和UPDATE操作达到安全的目的,一般在SQL>下进行操作前,建议将环境设置成为非自动提交的方式,采用的命令是_______,若想取消操作,采取的命令是_______。

参考答案:set autocommit off、rollback 2.对某步操作设置相应保存点的命令是_______,当根据需要用命令_______来实现撤消到这一步。

参考答案:SAVEPOINT、ROLLBACK TO

3.关系数据库中比较常用的SQL中,采用命令_______进行插入,采用_______来进行数据更新,而同时具有更新和插入功能的命令式_______。

参考答案:INSERT、UPDATA、MERGE

二、选择题

1.PL/SQL块中不能直接使用的SQL命令是()。

A.SELECT

B.INSERT

C.UPDATE

D.DROP 参考答案:D 2.以零作除数时会引发()异常。 A.VALUE_ERROR

B.ZERO_DIVIDE C.STORAGE_ERROR

D.SELF_IS_NULL 参考答案:B 3.要更新游标结果集中的当前行,应使用()子句。 A.WHERE CURRENT OF

B.FOR UPDATE C.FOR DELETE

D.FOR MODIFY 参考答案:A 4.下面不是常用的数据对象权限的是() A.DELETE

B.REVOKE C.INSERT

D.UPDATE

参考答案:B 5.用于修改表中数据的语句是() A.EDIT

B.MODIFY

C.UPDATE

D.ALTER

参考答案:D 6.在只读表空间上可以执行以下哪些操作?() A.CREATE TABLE

B.ALTER TABLE C.DROP TABLE

D.INSERT 参考答案: C

三、简答题

1.简述DETELE操作与TRUNCATE操作的异同。

参考答案:truncate,可以删除表中的所有记录,释放表空间,只保留表结构。

delete,如果没有where条件,也是删除表中的所有记录,但是它不释放空间。

TRUNCATE在各种表上无论是大的还是小的都非常快。如果有ROLLBACK命令DELETE将被撤销,而TRUNCATE则不会被撤销。RUNCATE将重新设置高水平线和所有的索引。在对整个表和索引进行完全浏览时,经过TRUNCATE操作后的表比DELETE操作后的表要快得多。

2.已有表文件teacher(教师代码(C),姓名(C),学院(C),职称(C),年龄(N)),

按照要求写出SQL语句。

1.查询职称为"副教授"的教师代码,姓名,学院,职称信息; 2.查询学院为“电信学院”并且职称为“讲师”的所有教师的信息,并将查询结果按年龄字段的降序排序。

3.将所有教师的年龄加1;

4.将表中年龄小于15岁的教师记录加上删除标记; 参考答案:(1)select 教师代码,姓名,学院。职称 from teacher where 职称=‟副教授‟; (2)select * from teacher where 学院=‟电信学院‟ and 职称=‟讲师‟ order by 年龄 desc; (3)update teacher set 年龄=年龄+1; (4) delete from teacher where 年龄

请使用MERGE命令完成。 参考答案:

MERGE INTO T T1 USING (SELECT '1001' AS a,2 AS b FROM dual) T2 ON ( T1.a=T2.a) WHEN MATCHED THEN UPDATE SET T1.b = T2.b WHEN NOT MATCHED THEN INSERT (a,b) VALUES(T2.a,T2.b);

7.5习题

一.填空题 1.创建视图的命令是_______。若要保证插入或修改的数据行必须满足视图定义的约束,创建时附带的参数是_______;若要保证视图上不能进行任何DML操作,创建时附带的参数是_______。

参考答案:CREATE VIEW、WITH CHECK OPTION、WITH READ ONLY

2.创建序列的命令是_______。若要使序列的增量为5,创建时附带的参数是_______;若要使序列开始值为10,创建时附带的参数是_______。

参考答案:CREATE SEQUENCE、INCREMENT BY

5、START WITH 10 3.视图中的列并不都支持DML操作,通过数据字典___________可以了解视图中哪些列是可更新的。

参考答案:user_updatable_columns 4.使用___________可以获取序列的当前值,使用___________可以获取下一个值。 参考答案:currval、nextval

5.如果要清除索引中的存储碎片,可以对索引进行合并或___________。 参考答案:重建 选择题

1.以下哪个视图可以查到用户具有使用权限的表的信息(

) A.USER_VIEWS

B.USER_TABLES C.ALL_OBJECTS

D.USER_OBJECTS 参考答案:C 2.要查看当前用户下有哪些数据表格,适用下列哪个视图(

) A.USER_TABLE

B.TAB C.USER_ALL_TABLES

D.TABLES_USER 参考答案:C 3.可以使用(

)伪列来访问序列。 A.CURRVAL和NEXTVAL

B.NEXTVAL和PREVAL C.CACHE和NOCACHE

D.MAXVALUE和MINVALUE 参考答案:A 4.带有错误的视图可使用(

)选项来创建。 A.FORCE

B.WITH CHECK OPTION C.CREATE VIEW WITH ERROR D.CREATE ERROR VIEW 参考答案:A 5.在联接视图中,当(

)时,该基表被称为键保留表。 A.基表的主键不是结果集的主键 B.基表的主键是结果集的主键 C.基表的主键是结果集的外键 D.基表的主键不是结果集的外键 参考答案:B 6.使用如下语句创建一个视图: CREATE VIEW test view AS SELECT stu.stuname , stu.stuage + 1 newage , cla.claname FROM student stu LEFT JOIN cla cla ON stu.claid = cla.claid; 请问test view视图中哪些列是可更新的?(

) A.stuname

B.stuname, newage C.stuname, claname

D.stuname, newage, claname 参考答案:A 7.如果创建一个序列,用于为表的主键列生成主键值,则创建该序列时不应该指定以下哪种参数?(

A.MAXVALUE 1000

B.MINVALUE 10 C.CACHE 10

D.CYCLE 参考答案:D 8.如果在创建序列时指定其CACHE参数值为10,当序列的当前值为5时,数据库突然关闭,再次运行数据库后,序列将从以下哪个值开始?( )

A.5

B.6 C.11 D.16 参考答案:C 9.下列关于索引的描述哪一项是不正确的?(

) A.表是否具有索引不会影响到所使用的sql的编写形式

B.为表创建索引后,所有的查询操作都会使用索引

C.为表创建索引后,可以提高查询的执行速度

D.为表创建索引后,Oracle优化器将根据具体情况决定是否采用索引 参考答案:B

三、简答题

1.简述表与视图的关系。

参考答案:联系:视图(view)是在基本表之上建立的表,它的结构(即所定义的列)和内容(即所有数据行)都来自基本表,它依据基本表存在而存在。一个视图可以对应一个基本表,也可以对应多个基本表。视图是基本表的抽象和在逻辑意义上建立的新关系。

2.表结构说明: create table employee( id number(10) not null, — 员工工号 salary number(10,2) default 0 not null, — 薪水 name varchar2(24) not null — 姓名 ); (1).创建序列seq_employee,该序列每次取的时候它会自动增加,从1开始计数,不设最大值,并且一直累加,不循环。

参考答案:create sequence seq_employee 2 increment

by 1 3 start

with

1 4 nomaxvalue 5 nocycle

/

(2).写一个PL/SQL块,插入表user.employee中100条数据。插入该表中字段id用序列seq_employee实现,薪水和姓名字段可以任意填写。

参考答案:略

3.如果对视图的基表进行结构上的改动,将会影响视图的可用性。请基于一个表创建一个视图,在视图的子查询语句中使用*查询基表中的所有列,然后对该表进行结构修改,例如增加列、删除列,修改列名等,测试不同情况下视图的可用性,并思考其中的原因。

参考答案:视图依赖于基础表的存在而存在,当基础表进行了结构上的修改后,有可能会对视图产生印象,如果要再次使用此试图,需要进行编译。 4.如果经常需要使用如下语句查询employee表中的员工信息: SELECT * FROM employee WHERE SUBSTRB(ename , 0 , 2) = „李„; 那么应该为ename创建什么索引,如何创建? 参考答案:创建基于函数的索引

CREATE INDEX EANME_INDEX ON employee (SUBSTRB(ename , 0 , 2)) TABLESPACE myspace

8.6 习题

一.填空题

1. PL/SQL程序由三个块组成,即_______、_______、_______。 参考答案:声明部分、执行部分、异常处理部分

2.Oracle块根据应用模块功能,可以分为四种类型,分别是:_______、_______、_______、_______。

参考答案:匿名块、命名块、子程序、触发器

3. Oracle的游标分为_______、_______。

参考答案:显示游标、隐式游标

4. Oracle 游标有4个属性,_______判断游标是否被打开,如果打开等于true,否则等于false;_______判断游标所在的行是否有效,如果有效,则等于true,否则等于false, _______属性与之相反;_______返回当前位置为止游标读取的记录行数。 参考答案:%ISOPEN、%FOUND、%NOTFOUND、%ROWCOUNT

二、选择题

1.关于存储过程参数,正确的说法是(

A.存储过程的输出参数可以是标量类型,也可以是表类型 B.存储过程输入参数可以不输入信息而调用过程

C.可以指定字符参数的字符长度(函数的()或者过程的(number/varchar2)) D.以上说法都不对 参考答案:B 2.下列说法,正确的说法是(

A.只要在存储过程中有增删改语句,一定加自治事务 B.在函数内可以修改表数据 C.函数不能递归调用 D.以上说法都不对 参考答案:B 3.利用游标来修改数据时,FOR UPDATE充分利用了事务的哪个特性?( ) A.原子性

B.一致性

C.永久性

D.隔离性 参考答案:D 4.下列哪个语句无需COMMIT而自动提交( ) A.CREATE TABLE t(t1 NUMBER,t2 NUMBER) B.UPDATE t SET t1=123 C.DELETE FROM t D.INSERT INTO t VALUES(1,3) 参考答案:A 5.下列说法不正确的是()

A.在PLSQL自定义函数中如果包含UPDATE、DELETE、INSERT语句,不必在函数 体内给出COMMIT; B.自定义函数可以在SQL语句中调用、也可以在PLSQL块中调用 C.自定义函数可以返回表类型

D.自定义函数中的参数可以是OUT类型 参考答案:D 6.下面定义PL/SQL记录的语法正确的是()

A.TYPE IS RECORD

B.TYPE RECORD C.RECORD D.TYPE RECORD 参考答案:A 7.在SQL*PLUS环境中可以利用DBMS_OUTPUT包中的PUT_LINE方法来回显服务器端变量的值,但在此之前要利用一个命令打开服务器的回显功能,这一命令是(

A. set server on

B. set serverecho on C. set servershow on

D. set serveroutput on 参考答案:D

三、简答题

1.简述NO_DATA_FOUND和%NOTFOUND两个保留字的用法。

参考答案:SELECT ...INTO 语句触发 NO_DATA_FOUND;

当一个显示光标的 where 子句未找到时触发 %NOTFOUND;

当UPDATE或DELETE 语句的where 子句未找到时触发 SQL%NOTFOUND;

在光标的提取(Fetch)循环中要用 %NOTFOUND 或%FOUND 来确定循环的退出条件,不要用 NO_DATA_FOUND。

2.简述PL/SQL的异常处理机制。

参考答案:当发生错误时,程序无条件转到异常处理部分,这就要求代码要非常干净并把错误处理部分和程序的其它部分分开。oracle允许声明其他异常条件类型以扩展错误/异常处理。这种扩展使PL/SQL的异常处理非常灵活。

当一个运行时错误发生时,称为一个异常被抛出。PL/SQL程序编译时的错误不是能被处理得异常,只有在运行时的异常能被处理。在PL/SQL程序设计中异常的抛出和处理是非常重要的内容。

3.查找出当前用户模式下,每张表的记录数,以scott用户为例,结果应如下:

DEPT...................................4 EMP...................................14 BONUS.................................0 SALGRADE.............................5 请编写PL/SQL程序块实现。 参考答案: DECLARE

type tab_names is table of varchar2(20) index by binary_integer;

tab_name tab_names;

coun number;

str varchar2(100); BEGIN

select table_name bulk collect into tab_name from user_tables;

for i in tab_name.first..tab_name.last LOOP

str:='select count(*) from '||tab_name(i); execute immediate str into coun;

dbms_output.put_line(tab_name(i)||'....................'||coun); ENDLOOP; END;

9.6 习题

一、填空题

1._______关键字标志着PL/SQL程序中声明段的开始。

参考答案: DECLARE

2.PL/SQL的异常处理代码在_______块中实现。

参考答案:

EXCEPTION

3.触发器可以分为三类,分别是:_______、_______、_______。

参考答案:DML触发器、替代触发器、系统及触发器

4. 包中包含_______和_______,它们共享公共的变量,公共的局部函数和过程。 参考答案:过程、函数

5.一个包由两个分开的部分组成_______和_______。

参考答案:包说明( package soecification)、包主体( package body )

二、选择题

1.关于触发器,下列说法正确的是( )

A.可以在表上创建INSTEAD OF 触发器

B.语句级触发器不能使用“:old”和“:new” C.行级触发器不能用于审计功能 D.触发器可以显式调用

参考答案:B 2.分析下面的PL/SQL代码块:

BEGIN FOR I IN 1..5 LOOP IF I=1 THEN NULL; ELSEIF I=3 THEN COMMIT; ELSEIF 1=5 THEN ROLLBACK; ELSE INSERT INTO test(results) values(i); END IF; END LOOP; COMMIT; END; 有多少个值,被永久地插入到TEST表中?() A.0 B.1 C.2 D.3 参考答案是: B

3.在PL/SQL循环中,需要测试当前的FETCH是否成功,可以完成这个要求的游标 属性是下列哪个()。

A.SQL%ISOPEN

B.SQL%ROWCOUNT C.SQL%FOUND

D.这一要求无法使用SQL游标属性完成。 参考答案是: D

4.检查下面的PL / SQL块:

DECLARE TYPE EmpList

IS VARRAY(2) OF employees.employee_id%TYPE NOT NULL; v_employees EmpList := EmpList(); BEGIN

DBMS_OUTPUT.PUT_LINE(v_employees.COUNT); v_employees.EXTEND; v_employees(1) := 30; END;

/ 下列关于上述PL / SQL块的结果的说法,正确的一项是:()。 A.它执行成功,并显示值为2 B.它执行成功,并显示值为0 C.它生成一个错误,因为数组不能扩展

D.它生成一个错误,因为该变长数组的声明是无效的。 参考答案是: B

三、简答题

1. 简述PL/SQL程序包的作用。

参考答案:把相关的过程和函数归类,按照功能的相关性存放在一起,并赋予一定的管理功能和使用的一组对象就叫做包。Oracle系统把相关的模块归类成为包,可使开发人员利用面向对象的方法进行内嵌过程的开发,从而提高系统性能。

2. 简述存储过程和函数的区别。

参考答案:本质上没区别。只是函数有如:只能返回一个变量的限制。而存储过程可以返回多个。而函数是可以嵌入在sql中使用的,可以在select中调用,而存储过程不行。执行的本质都一样。

函数限制比较多,比如不能用临时表,只能用表变量.还有一些函数都不可用等等.而存储过程的限制相对就比较少。

3. 思考如何在PL/SQL里避免重复编码的问题,请举例说明。 参考答案:使用存储过程或函数,举例略。

4. 在PL/SQL里如何使用绑定变量,为何使用绑定变量,请举例说明。

参考答案:这是解决Oracle应用程序可伸缩性的一个关键环节;而Oracle的共享池就决定了开发人员必须使用绑定变量;如果想要Oracle 运行减慢,甚至完全终止,那就可以不用绑定变量; 这里举例说明上述问题; 为了查询一个员工代号是123,你可以这样查询: select * from emp where empno=‟123‟; 你也可以这样查询: select * from emp where empno=:empno; 第一个查询使用的频率越高,所消耗的系统硬件资源越大,从而降低了用户的使用数量;它也会把优化好的其它查询语句从共享池中踢出,系统的整体性能降低; 而执行绑定变量,提交相同对象的完全相同的查询的用户,,一次性使用就可重复使用,提高效率。

四、应用题

1.用PL/SQL编写函数计算一个给定的正整数的阶乘,并编写调用程序对该函数进行调用。

参考答案:FUNCTION fac(n POSITIVE) RETURN INTEGER IS

BEGIN IF n = 1 THEN

RETURN 1; ELSE RETURN n * fac(n - 1); END IF;

END fac;

BEGIN

dbms_output.put_line(fac(5));

END;

2.给 teacher_info 表编写一个(before-delete)触发器,当要在teacher_info 表中删除一个记录,将触发该触发器。在触发器中将判断老师是否已经授课?如果已经安排某位教师授课,它将激发一个例外,把无法删除的信息返回用户。

参考答案:create trigger teacher_cancel on teacher_info instead of delete as declare @sk int,

@ID int begin select @ID=course_id FROM deleted select @sk=SKJL from teacher_info where course_id=@ID if(@sk=0) delete from teacher_info where course_id=@ID else begin raiserror('无法删除',10,1) end end

3.根据下面的要求编写相应存储过程,并调用执行。具体要求如下: 1)编写一个存储过程,向表中随机插入1000条记录

SerialNo:使用序列方式,自增长。 Filepath:使用随机插入6个字母 Partid:使用随机4位数字

StaffNo:从YTCZ060001…….YTCZ060020 中随机抽取 RecordTime:从2012年8月1日之前的6个月中随机抽取。

2)写一个程序块,循环调用500次此存储过程,保证数据表中存储50万条记录。

参考答案:(1)create table RecordFile ( SerialNo

VARCHAR2(20), FilePath

VARCHAR2(200), Partid

Varchar2(4), StaffNo

VARCHAR2(10), RecordTime

DATE)

Create index Ix_RecordFile_SerialNo on recordfile(SerialNo) pctfree 30 tablespace mytbs create sequence seq_RecordFile start with 0 minvalue 0;

create or replace procedure add_RecordFile is begin

for i in 1..1000 loop

insert into RecordFile values (seq_RecordFile.nextval, dbms_random.string('u',6), trunc(dbms_random.value(1000,9999)), 'YTCZ0'||trunc(dbms_random.value(60001,60020)), to_date('2006-08-04','yyyy-mm-dd')-dbms_random.value(0,181)); end loop;

commit; end add_RecordFile; (2) begin

for i in 1..500 loop

add_RecordFile;

end loop; end;

10.6习题

一、填空题

1.Oracle数据库从存储结构上可以分为___________和___________。 参考答案:逻辑存储结构、物理存储结构

2.在Oracle数据库中,___________是指存储数据库数据的文件。数据库中的所有数据最终都保存在___________中。 参考答案:数据文件、数据文件

3.Oracle数据库从逻辑存储结构的角度可以分为表空间、___________、区、___________。一个数据库实例由多个表空间组成,一个表空间由多个___________组成,一个___________由多个区组成,一个区由多个___________组成。 参考答案:段、数据块、段、段、数据块

4.将日志缓冲区中的日志信息写入日志文件的后台进程是___________。如果数据库实例运行在归档模式下,则日志文件中的內容将会被___________进程写入归档日志文件。 参考答案:LGWR、ARCH 5.Oracle数据库的物理存储结构主要由数据文件、___________和___________这3种类型的文件组成。

参考答案:控制文件、日志文件

6.如果一个服务器进程非正常终止,由Oracle系统会使用___________进程来释放它所占用的资源。 参考答案:PMON 7.Oracle数据库中,段主要可以分为数据段、___________、___________、___________和___________。

参考答案:索引段、回退段、LOB 段和临时段

8.在多进程Oracle实例系统中,进程分为___________、___________、___________。 参考答案:用户进程、后台进程、服务进程。

9.Oracle服务进程用于处理用户的请求。服务器进程可分为___________、___________。

参考答案:专用服务器进程(dedicated server proce)、共享服务器进程(shared server proce) 10.数据库写入器从___________中将修改过的数据块写到数据文件。 参考答案:数据库缓冲区

11.将当用户进程失败时,___________进程监视器执行恢复处理;当日志文件满或切换发生时,一个或多个___________负责拷贝联机重做日志到归档存储上;___________是一个实例的作业队列进程,当需要执行作业时就要启动。 参考答案:PMON、归档进程、作业队列进程

12.LARGE_POOL_SIZE 使用大的池(LARGE_POOL_SIZE)来给I/O服务进程___________和___________分配内存;参数__________设置共享服务器的最大数量;参数___________设置共享服务器进程数量。

参考答案:RMAN、MTS、MAX_DISPATCHERS、SHARED_SERVERS 13.运行___________脚本可建立与锁有关的视图;运行___________脚本可显示(以树型结构)等待锁和已占有锁的信息;在Oracle系统运行中,所产生的死锁都动态地记录在___________视图中。

参考答案:CATBLOCK.SQL、UTLLOCK.SQL、V$LOCK 14.___________是Oracle在系统异常时,有Oracle自动创建的文件,它与警告文件一起构成完整的故障信息。

参考答案:跟踪文件

二、选择题

1.下面对数据文件的叙述中,正确的是(

) A.一个表空间只能对应一个数据文件 B.一个数据文件可以对应多个表空间 C.一个表空间可以对应多个数据文件

D.数据文件存储了数据库中的所有日志信息 参考答案:C 2.下面对Oracle的逻辑存储结构叙述中,正确的是(

) A.一个数据库实例由多个表空间组成 B.一个段由多个区组成 C.一个区由多个段组成 D.一个块由多个区组成 参考答案:B 3.用符号"->"表示组成关系,下面哪一个组成关系正确表示了Oracle数据库的逻辑存储结构(

A.块->段->区->表空间->数据库 B.块->区->段->表空间->数据库 C.块->表空间->区->段->数据库 D.块->段->表空间->区->数据库 参考答案:B

4.系统全局区包括下面哪些区间?(

) A.Java池

B.软件代码区间 C.数据缓冲区 D.日志缓冲区 参考答案:ACD 5.解析后的SQL语句会缓存在SGA的哪个区间域中?(

) A.Java池

B.大型池

C.共享池

D.数据缓冲区 参考答案:C 6.下述选项不属于Oracle数据库逻辑存储结构的是(

) A.表空间

B.段

C.日志文件 D.区 参考答案:C 7.在全局存储区SGA中,哪部分内存区间是循环使用的?(

) A.数据缓冲区 B.日志缓冲区

C.共享池 D.大池 参考答案:B 8.下列哪一个后台进程和对应的数据库组件能够保证即使用户对数据库所做的修改没有写入数据文件,也不会发生修改内容丢失的情况(

) A.DBWn与数据库缓冲区 B.LGWR与重做日志文件 C.CKPT与控制文件

D. ARCn与归档日志文件 参考答案:B 9.下列哪项后台服务进程不是Oracle例程必须要启动的( ) A. DBWn B. LGWR C. PMON

D. ARCn 参考答案:D 10.在WINDOWS平台上Oracle服务器是以哪种形式运行的(

) A.单进程,多线程

B.多进程,多线程 C.多进程,每个进程为单线程 D.以上所述都不正确 参考答案:A 11.下面哪种后台进程用于将数据缓冲区中的数据写入数据文件?( ) A.LGWR B.DBWn

C.CKPT

D.ARCn 参考答案:B 12.以下关于数据库后台服务进程叙述正确是的(

A.DBWn负责从数据文件中读取数据到内存,并且负责将数据从内存回写到数据文件中

B.LGWR负责从重做日志文件中读取信息到内存,并且负责将日志信息从内存回写到重做日志文件中

C.SMON负责定时启动数据库并做相应的恢复和清理工作

D.CKPT负责向数据库发出检查点,用于同步数据库的所有数据文件、控制文件和重做日志文件 参考答案:D 13.当执行COMMIT语句时,会在哪类文件上发生I/O操作(

) A.数据文件 B.控制文件 C.重做日志文件 D.归档日志文件 参考答案:C

三、简答题

1.简述Oracle物理存储结构中数据文件、控制文件与重做日志文件的作用。

参考答案:数据文件用来存储数据库的数据,如表、索引等。读取数据时,系统首先从数据库文件中读取数据,并存储到SGA的数据缓冲区中。

重做日志文件记录对数据库的所有修改信息。它是三类文件中最复杂的一类文件,也是

保证数据库安全与数据库备份与恢复有直接关系的文件。

控制文件是一个二进制文件,用来描述数据库的物理结构,一个数据库只需要一个控制文件。

2.简述Oracle逻辑存储结构中表空间、段、区和块之间的关系。

参考答案:逻辑存储结构包括表空间,段,区,块。简单的说,逻辑存储结构之间的关系是:多个块组成区,多个区组成段,多个段组成表空间,多个表空间组成逻辑数据库。

3.简单介绍LGWR进程与ARCn进程的作用。

参考答案: LGWR进程是负责管理日志缓冲区的一个后台进程用于将日志缓冲区中的日志数据写入磁盘的日志文件中。 ARCn进程用于将写满的日志文件复制到归档日志文件中防止日志文件组中的日志信息由于日志文件组的循环使用而被覆盖。

4.如果想要了解数据库中所有表的信息,应该使用哪种数据字典? 参考答案: dba_tables 5.DBWn进程所采用的LRU算法应该怎样理解? 参考答案:略

6.SYS、SYSTEM账户都是Oracle数据库自动存在的账户,请简述二者的区别。 参考答案:SYS用户:当创建一个数据库时,SYS用户将被默认创建并授予DBA角色,所有数据库数据字典中的基本表和视图都存储在名为SYS的方案中,这些基本表和视图对于Oracle数据库的操作时非常重要的。为了维护数据字典的真实性,SYS方案中的表只能由系统来维护,他们不能被任何用户或数据库管理员修改,而且任何用户不能在SYS方案中创建表。

SYSTEM用户与SYS一样,在创建Oracle数据库时,SYSTEM用户被默认创建并被授予DBA角色,用于创建显示管理信息的表或视图,以及被各种Oracle数据库应用和工具使用的内容表或视图。

7.Oracle数据库的工作模式有哪两种?它们之间有有何区别?

参考答案:在Oracle数据库中,数据库的操作模式分为专用服务器(DELICATED SERVER)模式和多线程服务器(MULTITHREADED SERVER)模式两种。其中,在专用服务器模式中为每个用户进程创建一个服务器进程,用户进程与服务器进程之间是1:1的关系;在共享服务器模式中,一个服务器进程可以为多个用户进程服务器。

8.Oracle进程主要有哪些,作用是什么。 参考答案:数据写进程(dbwr):负责将更改的数据从数据库缓冲区高速缓存写入数据文件日志写进程(lgwr):将重做日志缓冲区中的更改写入在线重做日志文件系统监控(smon):检查数据库的一致性如有必要还会在数据库打开时启动数据库的恢复进程监控(pmon):负责在一个Oracle 进程失败时清理资源检查点进程(chpt):负责在每当缓冲区高速缓存中的更改永久地记录在数据库中时,更新控制文件和数据文件中的数据库状态信息。归档进程(arcn):在每次日志切换时把已满的日志组进行备份或归档作业调度器(cjq):负责将调度与执行系统中已定义好的job,完成一些预定义的工作.恢复进程(reco):保证分布式事务的一致性,在分布式事务中,要么同时commit,要么同时rollback。

9.Oracle的后台进程包括必须进程和可选进程。请列举Oracle的必须进程,并解释其作用。

参考答案:系统监控进程

SMON 用户监控进程

PMON 数据库写进程

DBWR 日志写进程

LGWR 检查点进程

CKPT

如果是归档模式

归档进程

ARCH 10.警告日志文件是一个存储在Oracle系统目录下的文本文件,它存储数据库系统运行期间记录例行的信息与错误信息。请简述记录的主要错误。

参考答案:警告日志的文件,用于记录数据库文件运行中主要事件的命令与结果。 11.简述数据库管理员使用初始化参数文件的作用。

参考答案:始化参数文件,也称启动参数文件,是配置Oracle数据库的一个重要方面,初始化参数文件内包括定义参数,静态限制参数,动态性能参数,控制或修改数据库和数据库实例操作的参数。当数据库启动时,在创建实例或读取控制文件之前,先读取初始化参数文件。

12.简述Oracle警告文件记录的内容。

参考答案:警告日志的文件,用于记录数据库文件运行中主要事件的命令与结果。

11.7 习题

一、填空题

1.在创建永久性表空间时,需要使用DATAFILE关键字指定其数据文件,而如果是创建临时表空间,则应该使用___________关键字为其指定临时文件。

参考答案:TEMPORARY 2.表空间的状态属性主要有ONLINE、___________、___________和___________。 参考答案:OFFLINE、READ ONLY、READ WRITE 3.数据文件的状态属性主要有ONLINE、___________和___________。 参考答案:OFFLINE、OFFLINE DROP

4.创建临时表空间需要使用TEMPORARY关键字,创建大文件表空间需要使用___________关键字,创建撤消表空间需要使用___________关键字。

参考答案:BIGFILE、UNDO

5.Oracle中用户默认的永久性表空间为___________,默认的临时表空间为temp。 参考答案:system 6.Oracle中管理撤消表空间的方式有回退段撤消管理和___________。 参考答案:自动撤销管理

二、选择题

1.下面哪些不属于表空间的状态属性?( ) A.ONLINE

B.OFFLINE C.OFFLINE DROP

D.READ 参考答案:C 2.将表空间的状态切换为OFFLINE时,可以指定下下面哪几种切换参数?( ) A.NORMAL B.IMMEDIATE C.TEMP D.FOR RECOVER 参考答案:AB 3.在表空间space中没有存储任何数据,现在需要删除该表空间,并同时删除其对应的数据文件,可以使用下列哪条语句?( )

A.DROP TABLESPACE space; B.DROP TABLESPACE space INCLUDING DATAFILES; C.DROP TABLESPACE space INCLUDING CONTENTS AND DATAFILES; D.DROP TABLESPACE space AND DATAFILES;

参考答案:B 4.使用如下语句创建一个临时表空间temp: CREATE ___________ TABLESPACE temp ___________ „F: \oraclefile\temp.dbf „ SIZE 10M AUTOEXTEND ON NEXT 2M MAXSIZE 20M; 请从下列选项中选择正确的关键字补充上面的语句。(

) A.(不填)、DATAFILE

B.TEMP, TEMPFILE C.TEMPORARY, TEMPFILE D.TEMP, DATAFILE 参考答案:C 5.下列将临时表空间temp设置为默认临时表空间的语句正确的是( ) A.ALTER DATABASE DEFAULT TABLESPACE temp; B.ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp; C.ALTER DEFAULT TEMPORARY TABLESPLBLESPACE TO temp; D.ALTER DEFAULT TAI3LESPACE TO temp; 参考答案:B 6.如果当前数据库实例中有一个临时表空间组groupl,该组中只有一个临时表空间temp1。现在使用下面的语句修改temp1表空间所在组为group2: ALTER TABLESPACE temp1 GROUP group2; 下面对执行上述语句后的结果叙述正确的是( )

A.由于数据库实例中并不存在group2组,所以上述操作将执行失败 B.上述语句可以成功执行,temp1表空间将被移动到group2组中

C.执行上述语句后,数据库实例中将存在两个临时表空间组:group1和group2 D.执行上述语句后,数据库实例中将只存在一个临时表空间组:group2 参考答案:D

三、简答题

1.表空间的状态有哪几种,它们分别表示什么意思?

参考答案: 在线:只有在此状态下才允许访问表空间中的数据;离线:当表空间状态为离线时不允许范围表空间中的数据;只读:当表空间状态为只读时可以访问表空间中的数据但访问仅仅限于阅读而不能进行任何更新或删除操作;读写:当表空间状态为读写时可以对表空间进行正常访问包括对表空间中的数据进行查询、更新和删除等操作。

2.如果初始化参数db_block_size的值为l6KB,那么还能设置db_16k_cache_size参数的值吗?请结合本章的学习内容,创建一个非标准数据块表空间,并简单概述其步骤。

参考答案:不能。

3.使用undo_retention参数可以设置撤消表空间中的撤消数据的保留时间,默认为900秒,这个时间长度在实际应用中可能不够,为了让撤消数据保留足够长的时间,是不是可以将undo_retention参数的值设置成非常大呢?为什么?

参考答案:不能,理由略

4.在实际应用中,需要临时创建一个表来使用,那么是否可以将该表创建在临时表空间中?

参考答案:可以,但是不是必须。

6.在Oracle中,对表空间的使用与管理非常重要。请创建一个表空间,然后对表空间

的数据文件进行增加、删除和移动等管理,巩固本章所学的知识。

参考答案:略

12.7习题

一、填空题

1.备份控制文件主要有两种方式:___________和备份成脚本文件。

参考答案:二进制文件

7.通过数据字典v$datafile可以查看数据文件信息,通过数据字典___________可以查看控制文件信息,通过数据字典___________可以查看日志文件信息。

参考答案:v$controlfile、v$logfile 8.Oracle数据库的运行模式有归档模式和___________模式两种,Oracle数据库默认为非归档模式,数据库管理员可以执行___________语句,将数据库的运行模式设置为归档模式。

参考答案:非归档模式、archive log start 9.如果在创建控制文件时使用了RESETLOGS选项,则应该执行___________语句打开数据库。

参考答案:二进制文件、ALTER SYSTEM ARCHIVE LOG START 10.使用ALTER SYSTEM语句修改参数值时,可以使用SCOPE选项,该选项有MEMORY、___________、___________3个可选值。

参考答案:spfile、both

二、选择题

1.下面对日志文件组及其成员叙述正确的是(

A.日志文件组中可以没有日志成员 B.日志文件组中的日志成员大小一致

C.在创建日志文件组时,其日志成员可以是已经存在的日志文件

D.在创建日志文件组时,如果日志成员已经存在,则使用REUSE关键字就一定可以成功替换该文件

参考答案:B 2.当日志文件组处于下列哪种情况时,无法清空该日志文件组?(

A.ACTIVE

B.INACTIVE C.CURRENT

D.UNUSED 参考答案:AC 3.下面哪条语句用于切换日志文件组?(

A.ALTER DATABASE SWITCH LOGFILE ; B.ALTER SYSTEM SWITCH LOGFILE ;.C.ALTER SYSTEM ARCHIVELOG ; D.ALTER DATABASE ARCHIVELOG ; 参考答案:B 4.删除日志文件组5中的日志文件E:\orcl\datafile\redo05.log,其中正确的语句是 (

A.ALTER DATABASE DROP LOGFILE „E:\orcl\datafile\redo05.log„ ; B.ALTER DATABASE DROP LOGFILE GROUP 5 „E:\orcl\datafile\redo05.log„ ; C.ALTER DATABASE DROP LOGFILE MEMBER „ E:\orcl\datafile\redo05.log „

D.ALTER GROUP 5 DROP LOGFILE „ E:\orcl\datafile\redo05.log‟„ 参考答案:C 5.修改系统中的参数值时,如果只修改服务器参数文件中的设置,则SCOPE选项的值应该为( )

A.SPFILE

B.MEMORY C.BOTH

D.以上都不对 参考答案:A

三、简答题

1.控制文件在数据库中有什么作用?在创建控制文件时应该注意哪些问题? 参考答案:控制文件存放数据库中的数据文件和日志文件的信息。在创建控制文件时需要指定与数据库相关的日志文件与数据文件。

2.日志文件组中的日志成员大小应该一致吗?为什么? 参考答案:应该一致。理由略。

3.日志文件组有哪几种状态,它们分别表示什么含义? 参考答案:归档未完成 正在使用 非活动状态 从未使用

4.简述清空日志文件组以及删除日志文件组或日志成员时应该注意哪些问题。 参考答案:清空日志文件组应注意如下两点 ① 被清空的日志文件组不能处于正在使用状态 ② 当数据库中止呕两个日志文件时不能清空日志文件组。

删除日志文件应注意如下几点 ① 该日志文件所在的日志文件组不能处于正在使用状态 ② 该日志文件所在的日志文件组中必须还包含其他日志成员 ③ 如果数据库运行在归档模式下则应该在删除日志文件之前确定它所在的日志文件组已经被归档否则会导致数据丢失。

删除日志文件组应注意如下几点 ① 一个数据库至少需要两个日志文件组 ② 日志文件组不能处于正在使用状态 ③ 如果数据库运行在归档模式下应该确定日志文件组已经被归档。

5. 简述归档模式与非归档模式的区别。 参考答案:在非归档日志模式下如果发生日志切换则日志文件中原有内容将被新的内容覆盖在归档日志模式下如果发生日志切换则ORACLE系统会将日志文件通过赋值保存在指定的地方然后才允许向文件中写入新的日志内容。

13.5习题

一、填空题

1.创建用户时,要求创建者具有___________系统权限。

参考答案:create user 2.向用户授予系统权限时,使用___________选项表示该用户可以将此系统权限再授予其他用户。向用户授予对象权限时,使用___________选项表示该用户可以将此对象权限再授予其他用户。

参考答案:WITH ADMIN OPTION、WITH GRANT OPTION 3.Oracle数据库中的权限主要有___________和___________两类。

参考答案:系统权限、对象权限

4.___________是具有名称的一组相关权限的组合。

参考答案:角色

5.一个用户想要在其他模式创建表,则该用户至少需要具有___________系统权限。

参考答案:create table 6.禁用与启用角色应该使用___________语句。

参考答案:SET ROLE 7.Oracle提供两个命令:___________用于给用户或角色进行授权;___________从用户或角色中收回某些权限

参考答案:grant、revoke 8.我们可将Oracle 用户分为三级,即___________、___________、___________。

参考答案:connect user,resource user 及 DBA 9.___________允许用户联到Oracle 数据库,用户可访问Oracle.;___________创建属于开发者的存储过程,软件包和函数.开发者也能撤消他们所拥有的这些对象;___________允许用户将数据库中任何权限授予任何用户。

参考答案:CREATE SESSION、CREATE PROCEDURE、GRANT ANY PRIVILEGE 10.命令___________实现创建角色;命令___________实现删除角色;命令___________使角色失效。

参考答案:CREATE ROLE、DROP ROLE、SET ROLE 11.数据字典中,SESSION_ROLES可以查看___________;___________查看授予角色的系统权限;___________查看实例中有效的用户及相应信息。

参考答案:用户可用的角色的信息、DBA_ROLE_PRIVS、DBA_USERS

二、选择题

1.如果某个用户仅仅具有scott.emp表上的SELECT与UPDATE权限,则下面对该用户所能执行的操作叙述正确的是(

A.该用户能查询scott.emp表中的记录 B.该用户能修改scott.Emp表中的记录 C.该用户能删除scott.emp表中的记录 D.该用户无法执行任何操作

参考答案:A 2.下面对系统权限与对象权限叙述正确的是(

A.系统权限是针对某个数据库对象操作的权限,对象权限不与数据库中的具体对象相关联

B.系统权限和对象权限都是针对某个数据库对象操作的权限 C.系统权限与对象权限都都不与数据库中的具体对象相关联

D.系统权限不与数据库中的具体对象相关联,对象权限是针对某个数据库对象操作的权限

参考答案:D 3.启用所有角色应该使用下面哪条语句(

) A.ALTER ROLE ALL ENABLE

B.ALTER ROLE ALL C.SET ROLE ALL ENABLE

D.SET ROLE ALL

4.Oracle数据库中,关于角色的说明,正确的是:() A.一个角色可以被授予自身

B.角色的所有者都属于SYS用户 C.一个角色可以包括系统和对象权限 D.一个角色不能被授予其它角色

参考答案:C 5.如果用户user1创建了数据库对象,删除该用户需要使用下列哪条语句?( ) A.DROP USER user1 ; B.DROP USER user1 CASCADE ; C.DELETE USER user1 ; D.DELETE USER user1 CASCADE ; 参考答案:B 6.修改用户时,用户的什么属性不能修改?(

) A.名称 B.密码 C.表空间

D.临时表空间

参考答案:A 7.具有访问数据字典视图DBA_XXX权限的角色是:() A.CONNECT

B.RESOURCE C.SYSDBA

D.SELECT_CATALOG_ROLE 参考答案:C 8.给用户desmond权限,可以改变gl.accounts表,同时还可以把这种权限分配给其他用户,以下哪个语句可以完成这种要求?()

A.grant alter any table with grant option to desmond; B.grant alter on gl.accounts to desmond with admin option; C.grant alter any table to desmond with grant option; D.grant alter any table to desmond with admin option; 参考答案:C 9.您执行下面语句创建一个数据库用户,并分配权限 SQL> create user user01

2 identified by test

3 default tablespace users

4 temporary tablespace temp

5 profile default

6 / 用户已创建。

SQL> grant create seion,create table to user01; 授权成功。

当用户user01执行命令创建表的时候,出现下面错误: SQL> create table a(name char(10)); create table a(name char(10)) * 第 1 行出现错误: ORA-01950: 对表空间 'USERS' 无权限

发生这个错误的原因是()

A.表空间users已经满

B.用户不是SYSTEM表空间的所有者

C.用户没有足够的系统权限在users表空间上创建表 D.用户在users表空间上没有配额(quota)

参考答案:C 10.可以删除审计跟踪记录的角色是:() A.CONNECT

B.RESOURCE C.DBA

D.DELETE_CATALOG_ROLE 参考答案:C

三、简答题

1.简述系统权限与对象权限的区别。

参考答案:系统权限是指对整个Oracle系统的操作权限。一般由数据库管理员授予用户并允许用户将被授予的系统权限再授予其他用户。 对象权限是指用户对数据库中对象的操作权限。

2.简述权限与角色的关系,以及使用角色有哪些好处。

参考答案: 数据库中的权限较多为了方便对用户权限的管理ORACLE数据库允许将一组相关的权限授予某个角色然后将这个角色授予需要的用户拥有该角色的用户将拥有该角色说包含的所有权限。 使用角色的好处是管理权限和授予权限十分方便。

3.在一个学生管理系统中,教师teacher01可以查询学生(student表)的所有信息,并可以修改学生的成绩(score 列),学生student01可以查看学生的信息,主任director01可以添加和删除学生。请问该如何为teacher01,student01和director01授予相应的权限。

参考答案:GRANT SELECT ON student TO teacher01 GRANT UPDATE ON studentscore TO teacher01 GRANT SELECT ON student TO student01 GRANT DELETEINSERT ON student TO director01 4.简述修改用户的默认角色与禁用启用角色的区别。

参考答案:当用户登录到Oracle数据库,数据库启用用户明确授予的所有权限和默认角色的所有权限。在一个会话中,用户或者是应用程序可以通过SET ROLE语句来启用、禁用当前会话已经启用的角色。对大多数角色来说,用户是不能启用和禁用角色的,除非这些角色是直接或通过别的角色间接授予用户的。

5.简述使用WITH ADMIN OPTION选项与使用WITH GRANT OPTION选项的区别。 参考答案:

1、with admin option 用于系统权限授权,with grant option 用于对象授权。

2、给一个用户授予系统权限带上with admin option 时,此用户可把此系统权限授予其他用户或角色,但收回这个用户的系统权限时,这个用户已经授予其他用户或角色的此系统权限不会因传播无效。

而with grant option用于对象授权时,被授予的用户也可把此对象权限授予其他用户或角色,不同的是但管理员收回用with grant option授权的用户对象权限时,权限会因传播而失效。

6. 简述用户、角色、权限的关系。

参考答案:简单的认为一个角色就是某些个权限的集合体,也就是说把多个系统权限(system privilege),对象权限(object privilege)以及角色(role)揉和在一起,然后赋给一个用户。

7. 简述系统权限与角色权限的区别。

参考答案:Oracle系统权限需要授予者有进行系统级活动的能力,如连接数据库,更改

用户会话、建立表或建立用户等等。角色权限就是将属于用户的权限授予一个角色。任何权限都可以授予给一个角色。授予系统权限给被授予者必须使用WITH_ADMIN_OPTION子句,在会话期间通过SET ROLE语句授予或撤销角色权限。

8.简述在应用Oracle的角色权限机制时,根据不同的用户如何设置用户的权限。 参考答案:管理员可以使用CREATE ROLE语句建立一些不同级别的角色,然后根据各个用户的情况来授予不同的角色。使用角色,可以简化权限的管理,先将对象的访问权授予某个角色,然后把角色授予用户。

14.7 习题

一、填空题

1.Oracle Database 11g提供了6种闪回技术,它们分别是闪回表(Flashback Table) ______、_________、_________闪回数据库(Flashback Database)、_____。

参考答案:闪回删除、闪回版本查询、闪回事物查询、闪回数据存储 2.清除回收站的对象需要使用

_______命令。

参考答案: PURGE 3.闪回版本查询主要针对表的INSERT、_______

和_______ 操作。

参考答案:UPDATE、DELETE 4.使用闪回版本查询时需要用到Flashback Version Query的伪列,其中表示对该行执行的操作;versions starttime表示对该行进行改动时的起始时间戳;_______表示此次改动不再有效时的结束时间戳。

参考答案:versions_endtime 5.在使用闪回事务查询时,可通过_______ 视图的xid宇段查看单独的事务信息,该字段的值对应闪回版本查询的versions xid伪列。

参考答案:flashback_transaction_query 6.Oracle系统在默认情况下没有启用闪回数据库功能,系统管理员可以使用_______语句启用该功能。

参考答案:ALTER DATABSE FLASHBACK ON

二、选择题

1.下面对闪回表操作叙述正确的是( ) A.使用闪回表技术,可以还原被删除的列 B.使用闪回表技术,可以恢复指定的记录行

C.使用闪回表技术,可以将表中的数据恢复到指定时间点或SCN上 D.使用闪回表技术,可以闪回被删除的表

参考答案:C 2.如果需要对已删除的表mytest执行闪回删除操作,应注意下列哪些事项?( ) A.确保当前数据库的回收站功能处于启用状态 B.如果回收站中有多个mytest表,则需要知道希望恢复的mytest表在回收站中的名称 C.如果该表所在用户下已经存在对象名mytest,则在还原该表时应该为该表重新命名 D.需要知道删除该表的时间

参考答案:AC 3.启用闪回数据库功能的语句是(

) A.ALTER SYSTEM FLASHBACK ON

B.ALTER SYSTEM FLASHBACK DATABASE ON ; C.ALTER DATABASE FLASHBACK ON ; D.ALTER DATABASE FLASHBACK DATABASE ON 参考答案:C 4.如果对表的结构进行了修改,则应该使用哪种闪回技术还原该表?(

) A.闪回数据库

B.闪回删除 C.闪回表

D.闪回数据归档

参考答案:A 5.使用如下语句创建表mytest:

CREATE TABLE mytest (id NUMBER) FLASHBACK ARCHIVE 下列说法正确的是(

A.无法创建成功,因为FLASHBACK ARCHIVE子句没有指明闪回数据归档区 B.一定可以创建成功,因为Oracle系统将为该表指定默认闪回数据归档区 C.可以创建成功,但要求数据库中存在默认闪回数据归档区 D.如果创建成功,可以以便用DROP语句删除该表

参考答案:C

三、筒答题

1.简述闪回技术的作用,并分别介绍Oracle Database 11g中各种闪回技术的作用。 参考答案:为了让用户可以及时获取误操作之前的数据,Oracle提供了一种处理机制,也称闪回技术,使用Oracle闪回技术,可以实现数据的迅速恢复,而且不依赖于数据备份。

闪回表(Flashback Table)技术用于恢复表中的数据,可以在线进行闪回表操作。 闪回删除(Flashback Drop)技术用于恢复已经被用户删除的数据库对象,这需要使用到Oracle数据库系统中的回收站机制。

闪回版本查询(Flashback Version Query)技术用于查询某段时间内对表的操作记录,主要针对INSERT、UPDATE和DELETE操作。

如果需要撤消己提交的事务,可以使用闪回事务查询(Flashback Transaction Query)。闪回事务查询是对闪回版本查询的扩充,通过它可以审计事务甚至撤消一个已提交的事务。

闪回数据库,实际上就是将数据库回退到过去的一个时间点或SCN上,从而实现整个数据库的恢复,这种恢复不需要通过备份,所以应用起来更方便、更快速。

新引入了闪回数据归档(Flashback Data Archive)技术。闪回数据归档的实现机制与前面几种闪回不同,它将改变的数据另外存储到特定的闪回数据归档区中,从而让闪回不再受撤消数据的限制,大大提高了数据的保留时间,闪回数据归档中的数据行可以保留几年甚至几十年。

2.简述使用闪回删除还原被删除的表时,需要注意哪些问题。

参考答案:闪回删除(Flashback Drop)技术用于恢复已经被用户删除的数据库对象,这需要使用到Oracle数据库系统中的回收站机制。

如果回收站处于禁用(OFF)状态,则被删除的数据库对象无法保存到回收站中,只能是被彻底删除。

3.简述闪回版本查询与闪回事务查询的区别与联系。

参考答案:闪回事务查询是对闪回版本查询的扩展。从某种程度上来说,闪回版本查询通常用于更细粒度的查询,如针对特定的记录。而闪回事务则是

针对某一事务进行闪回,是基于事务级别的。闪回事务查询通过查询视图flashback_transaction_query来获得某个或多个特定事务信息,

同时可以根据该视图中提供的undo_sql 列中的语句来反转事务,从而保证数据的完

整性。

4.简述使用闪回数据库还原数据库的步骤,以及注意事项。 参考答案:确定当前数据库的日志模式是否为归档模式; 设置闪回数据库功能为启用状态; 检查闪回数据库功能是否已经启用 指定时间戳

使用SYS用户连接数据库

使用FLASHBACK [ STANDBY ] DATABASE语句闪回数据库

使用闪回数据库,需要用户具有SYSDBA权限。

5. Oracle对包含AS OF子旬的查询使用撤消表空间还是闪回数据归档,对用戶来说是完全透明的,思考一下使用什么方式可以证明表的历史数据是由闪回归档区提供的,并加以验证。 参考答案:

6.谈谈你对数据备份与恢复、数据导入导出、闪回技术的理解。 参考答案:略

15.7 习题

一、填空题

1.使用ALTER INDEX语句,指定___________子句,可以用来监视所创建的索引。

参考答案:MONITORING USAGE 2.Oracle11g包含有许多V$动态视图,视图___________显示当前实例的状态;视图___________显示有关系统全局区的总结信息;视图___________显示有关系统全局区的详细信息;视图___________显示有关库缓存性能的统计数据。

参考答案:V$INSTANCE、V$SGA、V$SGASTAT、V$LIBRARYCACHE 3.通常用___________命令分析表或索引,使统计数据存放在相应的数据字典中。与表有关的数据字典:___________、___________;与CLuster有关的数据字典:___________;与索引有关的数据字典:___________、INDEX_STATS。

参考答案:ANALYZE、DBA_TABLES、DBA_TAB_COLUMNS、DBA_CLUSTERS、DBA_INDEXES 4.要确保所发布的I/O能均匀地通过硬盘和通道。I/O限制包括:___________、___________、___________。

参考答案:设备潜能、通道带宽、设备带宽 5.Oracle系统中的共享池是用来存放___________、___________、___________及Oracle系统的数据字典数据。

参考答案:SQL语句、PL/SQL语句、各种包

6.一些视图自从Oracle数据库实例起动或会话开始以来一直跟踪和统计累积数据。其中V$LIBRARYCACHE显示记录共享池中空间级小结信息;___________显示在共享池中对象级统计信息;___________显示库缓存当前内存信息;___________显示资源使用小结。

参考答案:V$DB_OBJECT_CACHE、V$LIBRARY_CACHE_MEMORY、V$SYSSTAT 7.在查询语句的SELECT子句中,尽量避免使用___________来表示全部的列名。 参考答案:*

8.在SELECT语句中,使用WHERE子句过滤行,使用HAVING子句过滤分组。应该尽量使用___________过滤行,这样避免了花费时间去分组要过滤的行。

参考答案:WHERE 9.IN操作符用于检查一个值是否包含在列表中,EXISTS只检查行的存在性。因此建议使用___________来替代IN操作符的使用。

参考答案:EXISTS 10.索引不仅仅可以基于单独的列,还可以基于多个列,在多个列上创建的索引叫___________。

参考答案:组合索引

二、选择题

1.在初始化参数中设置了如下参数:

DB_BLOCK_SIZE = 8KB SGA_MAX_SIZE = 2GB SGA_TARGET = 0 SHARED_POOL_SIZE = 120MB DB_CACHE_SIZE = 896MB STREAM_POOL_SIZE = 0 LARGE_POOL_SIZE = 110 MB 哪几个描述是正确的? (

A.不能设置参数 DB_8K_CACHE_SIZE的值.B.如果把共享池的大小增长到120MB,系统会自动调整共享池的大小到110M C.如果SGA_TARGET 的值是1GB,SHARED_POOL_SIZE 的值是120MB,那么即使共享池有空闲区域内存也不能使用共享池

D.当缓冲池中有足够的容量,一个应用程序能够从共享池分配超过120 MB的空间。.参考答案:A、C 2.Oracle数据库在运行时,系统自动将所有运行情况(包括日志数据)记录在哪个数据字典视图中( )。

A.V$SGA

B.V$ROWCACHE

C.V$SESSION_WAIT

D.V$SYSSTAT 参考答案:D 3.在警告文件中出现如下错误提示:

ORA-01650: Unable to Extend Rollback Segment x by String in Tablespace x 请问是什么原因导致( )

A.在临时表空间中找不到满足要求的连续空间 B.在表的扩展中已经超过了允许的最大值。

C.在表空间中没有没有足够的连续空间用于扩展。 D.没有足够的连续空间用于回滚段的扩展。.参考答案:D 4.删除表中的数据可以使用DELETE语句,也可以使用TRUNCATE语句。如果确定要删除表中的所有行,建议使用(

A.DELETE语句 B.TRUNCATE语句 C.DROP语句 D.COMMIT语句

参考答案:B 5.在表连接时必须选择最佳连接顺序,例如,要连接3个相关表:table

1、table2和table3,假设表table1有100行记录,表table2有1000行记录,表table3有10000行记录。那么表的连接顺序应该是( )

A.首先应该将table2连接到table1上,接着是table2连接到table3上 B.首先应该将table1连接到table2上,接着是table2连接到table3上 C.首先应该将table3连接到table2上,接着是table2连接到table1上 D.首先应该将table1连接到table3上,接着是table3连接到table2上 参考答案:C 6.使用表的连接查询时,建议选择___________作为驱动表,也就是将它作为FROM子句中的最后一个表( )

A.记录行数最少的表 B.记录行数最多的表 C.记录列数最少的表 D.记录列数最多的表 参考答案:A 7.创建索引时,需要认真选择表中的哪些列可以作为索引列。选择索引列要掌握的原则是( )。

A.经常在WHERE子句中使用的列

B.经常在表连接查询中用于表之间连接的列 C.不宜将经常修改的列作为索且

D.不宜将经常在WHERE子句中使用,但与函数或操作符相结合的列作为索引列 参考答案:A、B、C、D 8.使用LIKE操作符应用员工姓名查询时,下列哪个选项可以引用索引?(

) A.LIKE „%A%‟

B.LIKE „%A‟ C.LIKE „ A%‟

D.LIKE „A% 参考答案:C

三、简答题

1.简述调整重做日志缓冲区性能主要的方法。 参考答案:修改Redo Log Buffer参数

加速归档处理

减少重做日志产生

2.简述改善共享池性能的主要方法。

参考答案:稍微加大 Shared Pool 参数值;

为PL/SQL开较大的空间;

在内存中导入PL/SQL代码;

鼓励代码重用;

建立大的 Pool

3.Oracle进程内存占用一直增加,达到1G左右的时候就会连接失败,监听进程死掉,或者CPU达到100%,如何解决。

参考答案:

1、PATCH是否都打了,ORACLE系统内存参数是否太大,超出OS的MEMORY。

2、查查是不是程序没有关闭连接导致连接数不断上升引起的,你是什么操作系统?

3、服务器都作了什么设置呢?比如sga的分配,是什么情况呢?

4、要进行调优,及参数设置。

4.以管理员身份登录,在Oracle数据库中进行如下操作:

SQL> select tablespace_name, segment_type, sum(bytes) / 1048576 Mb

2 from dba_segments where owner = 'HR'

3 group by tablespace_name, segment_type

4 / 执行结果如下:

TABLESPACE_NAME

SEGMENT_TYPE

MB ------------------------------ ------------------ ---------- EXAMPLE

INDEX

1.1875 EXAMPLE

TABLE

.375 USERS

TABLE

18.3125 USERS

INDEX

35.725 根据Oracle优化的原则有什么问题?怎么改正? 参考答案:index不应该在user的表空间

5.下面4条SELECT语句的执行结果一样吗?执行效率一样吗?哪条语句的执行效率最高,为什么?

SELECT employee_id FROM employees; SELECT employee_id FROM hr.employees; SELECT employee_id FROM HR.EMPLOYEES; SELECT EMPLOYEE_ID FROM HR.EMPLOYEES; 参考答案:以上四个SQL在表中分析整理之后产生的结果及执行的时间是一样的,但是从ORACLE共享内存SGA的原理,可以得出ORACLE对每个SQL都会对其进行一次分析,并且占用共享内存,如果将SQL的字符串及格式写得完全相同则ORACLE只会分析一次,共享内存也只会留下一次的分析结果,这不仅可以减少分析SQL的时间,而且可以减少共享内存重复的信息,ORACLE也可以准确统计SQL的执行频率。

6. 在执行连接查询时,FROM和WHERE子句中,对表的连接顺序有什么要求? 参考答案:顺序都是先生成连接条件结果较少的,也就是说在语句执行结果集时,结果集尽量的小,不要大,所以对于连接时两个小数据表先连接,然后再是大表连接。

7.下面两条SELECT语句的执行结果一样吗?执行效率一样吗?哪条语句的执行效率较高,为什么?(其中,符合条件employee_id> 150的记录在记录集中比率为80%,符合条件department_id = 20的记录所占的比率为3%。)

SELECT * FROM hr.employees WHERE employee_id>150 AND department_id=10; SELECT * FROM hr.employees WHERE department_id=20 AND employee_id >150; 参考答案:第二条语句执行效率更高。比较次数更少。 8. 简述创建索引时的一些基本原则。

参考答案:对于经常以查询关键字为基础的表,并且该表中的数据行是均匀分布的。

以查询关键字为基础,表中的数据行随机排序。

表中包含的列数相对比较少。

表中的大多数查询都包含相对简单的WHERE子句。 9.对索引列的操作语句中,应该尽量避免哪些操作符的使用?

参考答案:所以对索引列的操作语句应该尽量避免“非”操作符的使用。例如:例如NOT、!=、、!、NOT EXISTS、NOT IN和NOT LIKE等。

16.4习题

一、填空题

1.只要具备___________角色权限的用户都可以进行全数据库方式导出。具体操作通过___________参数来实现全数据库导出。

参考答案:IMP_FULL_DATABASE、FULL=y 2.在进行导出和导入时,将参数传递给EXP和IMP的三种方式分别是___________、___________和___________。

参考答案:命令行方式、交互方式、参数文件法

3.为了加快导出的速度,可以使用参数___________来运行直接路径导出。 参考答案:DIRECT=Y 4. 由于导出只备份数据库的内容而不备份物理数据块,因此,导出也称为___________。

参考答案:逻辑备份

5.利用导出EXP实用程序的一个参数___________,可以导出一个查询结果集。这样管理员可以更方便地对所关心的数据进行控制。

参考答案:QUERY

二、选择题

1.用于确定是否要导入整个导出文件的参数是(

)。 A.CONSTRAINTS

B.TABLES C.FULL

D.FILE 参考答案:C 2.从指定的表中导出所有数据的导出模式是(

)模式。 A.用户

B.表 C.全部数据库

D.表空间 参考答案:B

三、简答题

1.请说出导入有哪些方式。

参考答案:全数据库方式;用户方式;表方式;表空间方式。

2.请说出导入和导出的几个作用。

参考答案:创建一个Oracle数据库的全部或部分逻辑备份;恢复对象,范围可以从一个表到全数据库;有助于防止用户偶尔的错误删除表或清空表;保存一个模式或整个数据库的逻辑结构(包含或不包含数据);将数据从一个版本移植到另一个版本;在不同硬件环境中进行数据的移动;从数据库中提取索引定义;在同一个数据库内重建模式;重建分区表的数据;减少Oracle数据库的碎片。

3.分别列出EXP和IMP命令的至少五个参数及其含义。 参考答案: EXP参数:

1)FULL export entire file (N) 要导出整个数据库

2)OWNER list of owner usernames 需要导出的用户名列表 3)FILE output files (EXPDAT.DMP) 导出的存储文件名

4)TABLES list of table names 要导出表的名字列表

5)COMPRESS import into one extent (Y) 是否压缩为一个文件

IMP参数:

1)ANALYZE 默认:Y,是否导入ANALYZE语句分析的表和索引的统计数据。 2)BUFFER 默认:与操作系统有关,缓冲区的大小(以字节计),处理过程中通过行的数据。

3)COMMIT 默认:N,指定在导入时是否每个数组插入后就提交。 4)CONSTRAINTS 默认:Y,指定是否要一致性导入。

5)FEEDBACK 默认:0,导入时显示进展的标志,表示导入的行数。 4.导出的Query参数受到哪些方面的限制。

参考答案:不能为完全、用户或可移动表空间方式的导出来指定query;条件必须适用于所有指定的表;不能在DIRECT中指定query;不能为嵌套表指定QUERY。

5.在进行导入操作时,有哪几种优化方式。

参考答案:

1、创建几个大的重做日志文件;

2、最小化数据库提交次数;

3、分步导入;

17.6 习题

一、填空题

1.Oracle 11g的企业管理器主要包括下面管理功能:数据中心管理、___________、___________、有效性管理、___________、___________。

参考答案:生命周期管理、存储管理、性能管理、故障管理

2.目前Oracle 11g EM包括两部分的产品,一个是___________;另外一个是___________。

参考答案:数据库网格控制管理、数据库控制管理

3.Oracle 11g EM前,要确保能访问数据库控制资料库(用SQL*Plus测试)是可用,并保证与NET Service有关的参数文件可用。WINDOWS下与NET Service有关的参数文件中,___________是Oracle服务器监听进程所需要的参数文件;___________是Oracle Net服务需要的参数文件;___________是访问Oracle实例需要的参数文件。

参考答案:LISTENER.ORA、SQLNET.ORA、TNSNAMES.ORA 4.如果Oracle安装在Windows操作系统环境下,那么可以从控制面板上,打开服务面板,启动企业管理器(OEM)服务:___________;如果Oracle安装的环境是UNIX或LINUX,那么可以使用___________命令来启动。

参考答案:OracleDBconsoleSID、emctl 5.Oracle 11g EM在性能管理方面主要提供:___________曲线、___________曲线及实例的I/O吞吐曲线。

参考答案:主机使用的情况曲线、Oracle会话使用曲线

二、选择题

1.您需要启动企业管理器,应使用哪个命令? (

) A.agctl start agent

B.emctl startup agent C.agctl enable agent

D.emctl start agent 参考答案:D 2.下列关于OEM的说法中正确的有( )。

A.从理论上讲,OEM的运行必须具备外部卓越的制造能力和自身优秀的无形资产 B.OEM方式实际是一种强强联合的方式,合作双方是优势互补

C.OEM方式节省固定资产投资,使大量的资本投资用于更好的资源配置,使项目的财务成本得以降低

D.制造方必须具有较强的市场开拓能力 参考答案:B 3.在Oracle 11g EM的“管理”中有“安全性”功能,它包括(

) A.用户

B.角色

C.系统

D.概要文件 参考答案:ABD 4.Oracle 11g EM例程也叫实例,在EM例程管理界面可显示(

)。 A.用户参数 B.内存参数 C.还原管理 D.所有初始化参数 参考答案:ABD

三、简答题

1.OEM数据库工具组的功能是什么?主要包括什么工具? 参考答案:

Oracle 11g EM可以对Oracle数据库进行管理,包括对用户的管理、表空间的管理、导出与导入等;可对本地Oracle服务器进行管理,要对分布环境的各Oracle服务器进行管理,要进行专门的配置;除了提供功能感强大的管理外,还为Oracle系统的优化与调整、SQL语句的优化等提供顾问,如找出消耗资源最多的SQL语句等。

工具包括:实例管理工具、性能管理工具、可用性工具、服务期工具、方案工具、数据移动工具等。

2.根据以下情况,回答相关问题。

(1)当登录至OEM控制台时,得到以下错误信息:

VOC-00002:Failure to obtain interface login 请问是什么原因导致。

(2)当使用OEM控制台时,得到以下错误信息:

VOC-00107:Failure setting credential details ORA-03114: Not Connected to ORACLE 请问是什么原因导致。

(3)当使用SYSDBA登录至OEM控制台时,得到以下错误信息:

VOC-00121:Failure updating or inserting a user detail entry

ORA-00942:Table or view does not exist 请问是什么原因导致。 参考答案: (1) 原因是OEM通信后台进程不能打开一个与Repository的连接,确认TCP/IP配置正确,以及是否通信后台进程的缺省参数已被修改。

(2) 原因是OEMRepository所在数据库已关机,或是连接数据库的服务发生了网络故障。

(3) 权限不够,用户登录至OEM控制台的缺省角色是NORMAL,看不到相关的表。

3.某个客户服务代表接到一个客户关于需要修改的账户问题的电话。当这个代表正准备按应用中的Save按钮,从而提交所输入的用户修改时,火警警报响了,所以他必须离开这栋大楼。当火警警报结束后,他回到工作台,不过他发现他处理的应用生成了一个出错,这个出错提示他要修改的表已经被锁定了,要求他联系DBA,所以他给你打了电话,报告这个问题。

回答下面的问题并完成这些任务。

(1)列出你可能采取的检查锁争用的方法。(4分)

(2)假定这个错误是ORA-000060,可能是什么原因导致的?(5分) (3)你将采取什么来解决锁争用的问题呢? (4分) 参考答案: (1) 检查动态性能视图V$LOCK;通过OEM的检查锁功能;检查SQL跟踪文件。

(2) 死锁产生的。 (3) 杀掉死锁进程。

4.在OEM控制台上,数据库显示为红色的圆圈和斜线,表示数据库已关闭;然而数据库是正在运行的。请解释出现这种情况的原因,以及如何处理?

参考答案:

监听器没启动,所以无法查询到数据库的状态。

数据库 sql习题及答案

数据库应用习题及答案

Oracle数据库实验报告

Oracle数据库心得体会

ORACLE数据库工作总结

Oracle数据库总结

ORACLE数据库学习心得

数据库习题与答案

数据库习题与答案

Oracle数据库 图书管理系统实验报告

Oracle数据库管理习题及答案
《Oracle数据库管理习题及答案.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
点击下载本文文档