oracle期末复习题及答案剖析.docx

上传人:b****8 文档编号:10461077 上传时间:2023-02-13 格式:DOCX 页数:10 大小:19.69KB
下载 相关 举报
oracle期末复习题及答案剖析.docx_第1页
第1页 / 共10页
oracle期末复习题及答案剖析.docx_第2页
第2页 / 共10页
oracle期末复习题及答案剖析.docx_第3页
第3页 / 共10页
oracle期末复习题及答案剖析.docx_第4页
第4页 / 共10页
oracle期末复习题及答案剖析.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

oracle期末复习题及答案剖析.docx

《oracle期末复习题及答案剖析.docx》由会员分享,可在线阅读,更多相关《oracle期末复习题及答案剖析.docx(10页珍藏版)》请在冰豆网上搜索。

oracle期末复习题及答案剖析.docx

oracle期末复习题及答案剖析

1、以下()内存区不属于SGA。

A.PGAB.日志缓冲区C.数据缓冲区D.共享池

2、()模式存储数据库中数据字典的表和视图。

A.DBAB.SCOTTC.SYSTEMD.SYS

3、在Oracle中创建用户时,若未提及DEFAULTTABLESPACE关键字,则Oracle就将()表空间分配给用户作为默认表空间。

A.HRB.SCOTTC.SYSTEMD.SYS

4、()服务监听并按受来自客户端应用程序的连接请求。

A.OracleHOME_NAMETNSListener

B.OracleServiceSID

C.OracleHOME_NAMEAgent

D.OracleHOME_NAMEHTTPServer

5、()函数通常用来计算累计排名、移动平均数和报表聚合等。

A.汇总B.分析C.分组D.单行

6、()SQL语句将为计算列SAL*12生成别名AnnualSalary

A.SELECTename,sal*12‘AnnualSalary’FROMemp;

B.SELECTename,sal*12“AnnualSalary”FROMemp;

C.SELECTename,sal*12ASAnnualSalaryFROMemp;

D.SELECTename,sal*12ASINITCAP(“AnnualSalary”)FROMemp;

7、锁用于提供()。

A.改进的性能

B.数据的完整性和一致性

C.可用性和易于维护

D.用户安全

8、()锁用于锁定表,允许其他用户查询表中的行和锁定表,但不允许插入、更新和删除行。

A.行共享B.行排他C.共享D.排他

9、带有()子句的SELECT语句可以在表的一行或多行上放置排他锁。

A.FORINSERTB.FORUPDATE

C.FORDELETED.FORREFRESH

10、使用()命令可以在已分区表的第一个分区之前添加新分区。

A.添加分区B.截断分区

C.拆分分区D.不能在第一个分区前添加分区

11、()分区允许用户明确地控制无序行到分区的映射。

A.散列B.范围C.列表D.复合

12、可以使用()伪列来访问序列。

A.CURRVAL和NEXTVALB.NEXTVAL和PREVAL

C.CACHE和NOCACHED.MAXVALUE和MINVALUE

13、带有错误的视图可使用()选项来创建。

A.FORCE

B.WITHCHECKOPTION

C.CREATEVIEWWITHERROR

D.CREATEERRORVIEW

14、在联接视图中,当()时,该基表被称为键保留表。

A.基表的主键不是结果集的主键

B.基表的主键是结果集的主键

C.基表的主键是结果集的外键

D.基表的主键不是结果集的外键

15、在列的取值重复率比较高的列上,适合创建()索引。

A.标准B.唯一C.分区D.位图

16、要以自身的模式创建私有同义词,用户必须拥有()系统权限

A.CREATEPRIVATESYNONYM

B.CREATEPUBLICSYNONYM

C.CREATESYNONYM

D.CREATEANYSYNONYM

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

A.SELECTB.INSERT

C.UPDATED.DROP

18、以零作除数时会引发()异常。

A.VALUE_ERRORB.ZERO_DIVIDE

C.STORAGE_ERRORD.SELF_IS_NULL

19、要更新游标结果集中的当前行,应使用()子句。

A.WHERECURRENTOFB.FORUPDATE

C.FORDELETED.FORMODIFY

20、用于处理得到单行查询结果的游标为()。

A.循环游标B.隐式游标

C.REF游标D.显式游标

21、公用的子程序和常量在()中声明。

A.过程B.游标

C.包规范D.包主体

22、数据字典视图()包含存储过程的代码文本

A.USER_OBJECTSB.USER_TEXT

C.USER_SOURCED.USER_DESC

23、以下不属于命名的PL/SQL块的是()。

A.程序包B.过程

C.游标D.函数

24、()包用于显示PL/SQL块和存储过程中的调试信息。

A.DBMS_OUTPUT

B.DBMS_STANDARD

C.DBMS_INPUT

D.DBMS_SESSION

25、Oracle的内置程序包由()用户所有。

A.SYSB.SYSTEM

C.SCOTTD.PUBLIC

26、()触发器允许触发操作中的语句访问行的列值。

A.行级B.语句级

C.模式D.数据库级

27、在非归档日志方式下操作的数据库禁用了()。

A.归档日志

B.联机日志

C.日志写入程序

D.日志文件

28、以下哪种备份方式需要在完全关闭数据库进行()。

A.无归档日志模式下的数据库备份

B.归档日志模式下的数据库备份

C.使用导出实用程序进行逻辑备份

D.以上都不对

29、()方式的导出会从指定的表中导出所有数据。

A.分区B.表

C.全部数据库D.表空间

30、()参数用于确定是否要导入整个导出文件。

A.CONSTRAINTSB.TABLES

C.FULLD.FILE

一、简述Oracle的内存结构?

二、Oracle9i中的三种数据保护模式分别是什么?

最大保护模式(MAXIMIZEPROTECTION)

提供最高等级的数据保护,重作信息从主库同步送到备用库。

直到备用库成功接收重作信息,主库上的事务才会提交。

但是如果由于网络等问题,导致备用库不可用,那么主库也同时会被关闭。

这种模式保证了完全没有数据丢失。

最大性能模式(MAXIMIZEPERFORMANCE)

这种模式下,主库上的重作信息是异步传递到备用库上,不论备用库上是否已经成功接收了重作信息,主库上的操作都会成功执行。

所以这种模式提供了最好的性能,但是最低的数据保护。

这种情况下容易造成数据丢失。

最大可用性模式(MAXIMIZEAVAILABILITY)

在备用库正常的情况下,该模式提供了跟“最大数据保护模式”一样的机制,保证没有任何数据丢失。

如果备用库不可用,那么将转换到“最大性能模式”,用户可以在主库上继续执行。

当备用库重新可用之后,将会继续同步。

但是如果在同步完成之前,主库由于故障损坏,将会丢失数据。

三、本地索引与全局索引的差别与适用情况?

差别:

本地索引适用于sql语句种限定一个范围的查询比如时间之类的,全局索引适用于在全部记录中查询,比如要查询一个手机号之类的。

全局索引总可能出现unused的情况,需要重建

适用情况:

本地索引适合条件中包含partitionkey的,当然不是绝对的

全局索引总可能出现unused的情况,通常的处理方式是这样的:

9i里面有updateglobalindex的子句(ALTERTABLEsalesDROPPARTITIONdec98UPDATEGLOBALINDEXES;)

四、数据库切换日志的时候,为什么一定要发生检查点?

这个检查点有什么意义?

当日志文件被覆盖的时候一定要确保相关dirtybuffer一定被写入数据文件,所以日志的切换必须引起检查点。

二、填空题(每空2分,共40分) 

1、假设已在某远程客户端完成网络服务名配置,服务名为aptech,请写出用户MARTIN

(用户口令martinpass)连接到服务器的命令:

 

Connectmartin/martinpass@aotech

2、SYS用户以管理员身份登录后,要授予用户MARTIN可以对SCOTT用户的EMP表进

行查询的权限,请写出授权命令:

(假设MARTIN用户已存在) 

Grantselectonscott.emptomartin 

3、创建表employee的副本,但不包含表中的记录:

 

CREATE TABLE employee_copy AS

Select*fromemployeewhere1=2; 

4、查询itemfile表中itemrate列的信息,要求将数值转换为字符串,并使用当前货币符号

作为前缀:

 

SELECTto_char(itemrate,'C99999') FROM itemfile;

5、查itemfile表中itemdesc、re_level列的信息,要求re_level为NULL时显示为0

SELECT itemdesc, NVL(re_level,0) FROM itemfile; 

6、完成以下PL/SQL块,功能是:

显示2 到50的25个偶数。

 BEGIN 

FOReven_numberIN1..25LOOP 

  DBMS_OUTPUT.PUT_LINE(even_number*2); 

END LOOP 

END; 

7、完成以下PL/SQL块,功能是:

接受职员编号并检索职员姓名。

将职员姓名存储在变量

empname中,如果代码引发VALUE_ERROR异常,则向用户显示错误消息。

 DELCARE 

  empname employee.ename%TYPE;;   

eno   employee.empno%TYPE; BEGIN 

  eno:

=’&employee_number’; 

SELECT ename INTO empname FROM employee WHERE empno=eno;   

DBMS_OUTPUT.PUT_LINE(‘职员姓名:

’||empname);  EXCEPTION 

     WHEN VALUE_ERROR THEN 

     DBMS_OUTPUT.PUT_LINE(‘要存储在变量中的值过大’) 

  END;

8、完成以下PL/SQL块,功能是:

使用游标,显示所有单价低于250元的玩具的单价。

 

DECLARE 

  my_toy_price toys.toyprice%TYPE;   CURSOR toy_cur IS 

    SELECT toyprice FROM toys     WHERE toyprice<250; BEGIN 

  OPEN toy_cur  

 LOOP 

FETCH toy_cur INTO my_toy_price;   

 EXIT WHEN toy_cur%NOTFOUND; 

DBMS_OUTPUT.PUT_LINE (toy_cur%ROWCOUNT || '. 玩具单价:

' || my_toy_price);   

END LOOP;  

 CLOSE toy_cur; 

END; 

9、完成以下PL/SQL块,功能是:

使用游标显示销售报表。

如果目标销售额(tsales)大于实际销售额(asales),则显示消息‚需提高销售额‛。

如果tsales等于asales,则显示消息‚已达到销售额‛,否则显示消息‚销售业绩出色‛

 DECLARE 

  CURSOR sales_cur IS SELECT * FROM salesdetails; 

BEGIN

FOR sales_rec IN sales_cur LOOP     

 IF sales_rec.tsales > sales_rec.asales THEN 

      DBMS_OUTPUT.PUT_LINE('产品:

'||sales_rec.pid||' 需提高销售额');    

 ELSE 

      IF sales_rec.tsales = sales_rec.asales   THEN         

 DBMS_OUTPUT.PUT_LINE('产品:

'||sales_rec.pid||'已达到销售额');       

 ELSE       DBMS_OUTPUT.PUT_LINE('产品:

' ||sales_rec.pid||'销售业绩出色');        

END IF;     

END IF;   

END LOOP; 

END;

10、完成以下PL/SQL块,功能是:

创建一个交换两数的过程。

 CREATE OR REPLACE PROCEDURE 

swap(p1 IN OUT NUMBER, p2 inout NUMBER) IS  

 v_temp NUMBER; BEGIN 

  v_temp :

= p1;   p1 :

= p2; 

  p2 :

= v_temp;

 END;

11、完成以下PL/SQL块,功能是:

创建一个函数dept_name,其功能是接受职员编号后返回职员所在部门名称。

(注:

部门名称在dept表中,而职员信息在emp表中,职员所在部门号的列名为deptno) 

CREATE OR REPLACE FUNCTION dept_name (emp_no NUMBER) RETURN VARCHAR2 AS   dept_no NUMBER

(2); 

  result  dept.dname%TYPE; 

BEGIN  

 SELECT deptno INTO dept_no FROM emp WHERE empno=emp_no;  

SELECT dname INTO result FROM dept   

WHERE deptno = dept_no;   

RETURN result; 

EXCEPTION 

  WHEN OTHERS THEN     RETURN NULL; 

END; 

12、要执行pack_me包中的order_proc过程(有一个输入参数),假设参数值为’002’,

可以输入以下命令:

 

EXECUTE pack_ma.order_proc(‘002’)

13、完成以下PL/SQL块的功能是:

创建一个触发器biu_job_emp,无论用户插入记录,还是修改EMP表的job列,都将用户指定的job列的值转换成大写。

 

CREATE OR REPLACE TRIGGER biu_job_emp

BEFORE INSERT OR UPDATE OF job ON emp 

FOR EACH ROW

 BEGIN 

  :

NEW.job :

=UPPER(:

NEW.job); 

END;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 管理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1