数据库应用技术复习题

更新时间:2023-11-15 22:20:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一、选择题

1. SQL*PLUS在ORACLE数据库系统中的作用,以下叙述正确的是(C) A.是ORACLE数据库服务器的主要组成部分,是服务器运行的基础构件。 B.是ORACLE数据库系统底层网络通信协议,为所有的ORACLE应用程序提供一个公共的通信平台。

C.是ORACLE客户端访问服务器的一个工具,通过它可以向服务器发送SQL命 令。

D.是ORACLE客户端到客户端的点对点的通信工具,用来传递各个客户端的数据。

2. 命令sqlplus /nolog的作用是(C )

A.仅创建一个ORACLE实例,但并不打开数据库. B. 仅创建一个ORACLE实例,但并不登录数据库. C.启动sqlplus,但并不登录数据库 D.以nolog用户身份启动sqlplus

3. 在SQL*PLUS中显示EMP表结构的命令是( B) A.LIST EMP B.DESC EMP C.SHOW DESC EMP D.STRUCTURE EMP

4. 在SQL*PLUS环境中可以利用DBMS_OUTPUT包中的PUT_LINE方法来回显服务器端变量的值

但在此之前要利用一个命令打开服务器的回显功能,这一命令是( D) A.set server on B.set serverecho on C.set servershow on D.set serveroutput on

5. 在SQL*PLUS中执行刚输入的一条命令用(A ) (A) 正斜杠(/) (B) 反斜杠(\\) (C) 感叹号(!) (D) 句号(.)

6. 在SQL*PLUS中显示当前用户的命令是(C ) (A) show account (B) show accountname

(C) show user (D) show username

7. 当用SQL*PLUS已经登录到某一数据库,此时想登录到另一数据库,应该用命令( A)

(A) CONN (B) DISC (C) GOTO (D) LOGON

8. 假定表A中有十万条记录,要删除表中的所有数据,但仍要保留表的结构,请问用以下哪个命令效率最高( D) (A) delete from a; (B) drop table a; (C) trunc table a; (D) truncate table a;

9. 如果一个进程意外终止,ORACLE使用下列哪一个后台进程来释放它所占用的资源(D)

(A) DBWn (B) LGWR (C) SMON (D) PMON 10. ORACLE网络侦听器位于(B ) (A) ORACLE客户端 (B) ORACLE服务器端 (C) ORACLE客户端和服务器端 (D) ORACLE的中间层服务器端 11. 以下关于表空间的叙述正确的是(D )

(A) 表是表空间的基础,表空间是所有相关表所占空间的总和 (B) 表空间是由一至多个数据文件构成的,每个表占用一个数据文件 (C) 一张表可以占用多个表空间,一个表空间也可以容纳多张表 (D) 一个表空间可以容纳多张表,但一张表只能归属于一个表空间

12. 用符号\表示组成关系,下面哪一个组成关系正确表示了ORACLE数据库的逻辑存储结构( B)

(A) 块->段->区->表空间->数据库 (B) 块->区->段->表空间->数据库 (C) 块->表空间->区->段->数据库 (D) 块->段->表空间->区->数据库

13. 根据不同的需要,可对数据库服务器进行相应的启动方式,当以STARTUP MOUNT方式启动时,以下说法正确的是( B) (A) 仅仅创建一个数据库实例

(B) 创建了数据库实例并且挂载了数据库

(C) 创建了数据库实例,同时也创建了数据库 (D) 打开了数据库,但只能供系统用户访问

14. 在ORACLE客户端网络配置文件中\参数值为(A ) (A) 服务器的侦听端口,默认为1521 (B) 服务器的侦听端口,默认为7778 (C) 中间层的接入端口,默认为1521 (D) 中间层的接入端口,默认为7778

15. 在ORACLE客户端网络配置文件中\参数值为(D ) (A) 服务器的IP (B) 服务器的机器名 (C) 服务器的数据库域名 (D) 服务器的实例名

16. 以下关于数据库过程和函数叙述正确的是(A )

(A) 过程和函数都是命名的PL/SQL块,但执行效率要比普通PL/SQL块高 (B) 过程和函数都是命名的子程序,每次执行前由数据库进行编译 (C) 过程是没有返回参数的,而函数是有返回参数的 (D) 过程不带输入参数,而函数是要带输入参数的 17. 以下关于数据库包的叙述正确是的(B )

(A) 包是由包头和包体组成的,在定义包头时,必须也要同时定义好包体 (B) 包是由包头和包体组成的,包头和包体是可以分别创建的

(C) 包是由包头和包体组成的,包头和包体可以写在一起,也可以分别定义 (D) 包是由包头和包体组成的,包头是包体中所有变量的定义区,而包体则只是执行代码部分

18. 当对数据库进程调整时,要求除DBA用户外的其它用户都不能访问数据库,这时可以用以下哪种数据库启动方式(C ) (A) STARTUP NOMOUNT (B) STARTUP MOUNT (C) STARTUP RESTRICT (D) STARTUP FORCE

19. 在关闭数据库时,要求当前尚未处理完成的事务立即停止处理,未完成事务进行回滚.可采用下列哪种方式( C) (A) SHUTDOWN (B) SHUTDOWN ABORT (C) SHUTDOWN IMMEDIATE

(D) SHUTDOWN TRANSACTIONAL

20. 以下ORACLE认证的级别由低到高排列正确的是(A) (A) OCA->OCP->OCM (B) OCM->OCP->OCA (C) OCP->OCA->OCM (D) OCA->OCM->OCP

21. Oracle Database包括哪三类文件? A (A) 控制文件, 数据文件, 日志文件 (B) 参数文件, 备份文件, 归档日志文件 (C) 密码文件, 归档日志文件, 跟踪文件 (D) 重做日志文件, 备份文件, 用户文件 22. 在以下PL/SQL循环语句的括号位置应该填写 for i in 1 (C) 10 loop (A) TO (B) -> (C) .. (D) INC

23. emp表是雇员信息表,sal字段存放是的雇员的月薪 以下哪个变量可以存放sal类型的值B (A) v_sal emp%rowtype; (B) v_sal emp.sal%type; (C) v_sal emp.sal.%type; (D) v_sal %type(emp.sal);

24. 在PL/SQL环境中,以下说法正确的是A (A) 字符串是用单引号加以界定的 (B) 字符串是用双引号加以界定的 (C) 对于单行注释可以用双斜线//开始 (D) 多行注释是以大括号{}加以界定的 25. 客户端用于网络连接的两个配置文件文件是A (A) TNSNAMES.ORA 和 SQLNET.ORA (B) TNSNAMES.ORA 和 LISTENER.ORA (C) TNSNAMES.ORA 和 INIT.ORA (D) SQLNET.ORA 和 LISTENER.ORA

26. 当表的重复行数据很多时,应该创建的索引类型应该是( C) (A)B树

(B)reverse (C)bitmap (D)函数索引

27. 关于触发器,下列说法正确的是( B) (A)可以在表上创建INSTEAD OF 触发器

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

28. 下列哪个命令是用于ORACLE中数据导出的 ( A ) (A)exp (B)imp (C)input (D)output 29. 一般在(D )中有机会使用:NEW和:OLD

(A)游标 (B)存储过程 (C)函数 (D)触发器

30. 按照对(B)的管理方式,可以将表空间分为数据字典管理表空间和本地化管理表空间

A)段 B)区 C)表 D)Oracle块

31. 下列那个文件不属于数据库Database的一部分(B )

A)控制文件 B)参数文件 C)数据文件 D)日志文件

32. 下列选项中不是本地Net服务名所包含的内容的是(C )

A)主机名(IP地址) B)端口号 C)控制文件名 D) 实例名

33. 下列关于Oracle后台进程的说法中不正确的是( C)

A)SMON的一个重要的职责是进行实例恢复 B)PMON的一个职责是清理孤儿会话

C)LGWR在CKPT进程未启动的情况下承担起生成检查点的职责

D)DBWR负责将用户请求的数据放入到缓存,并在适当的时机将缓存中的数据写入文件

34. 下列不属于SGA的是(D )

A)块缓冲区(Database Buffers) B)共享池 C) 库缓存(Library cache) D) 专用服务器模式下的会话信息(Session Information)

35. 下列关于Oracle启动的说法中不正确的是( D)

A)数据库可以先startup mount,然后用alter database open将数据库打开联机

B)数据库可以在open的状态下,用alter database mount将数据库降到mount状态 C)数据库可以先startup nomount,然后用alter database open将数据库打开到open联机状态 D)利用startup命令,如果没有什么故障,数据库可以直接到open的状态

36. 在Oracle中,当用户执行Select语句时,下列哪个进程负责从磁盘中获得用户需要的

数据?(B )

A)用户进程(user process) B)服务器进程(Server process) C)检查点进程(CKPT) D)日志进程(LGWR)

37. 在Oracle中,有一个教师表teacher的结构如下

ID number(5)

Name varchar2(10) Email varchar2(20)

下面哪个语句显示没有Email地址的教师的姓名( C) A )select name from teacher where email=null; B)select name from teacher where email<>null; C)select name from teacher where email is null; D)select name from teacher where email is not null;

38. 在windows操作系统中,Oracle的( A)服务监听并接受客户端应用程序的连接请求

A)OracleHome_NAMETNSListener B)OracleServiceSID

C)OracleHome_NameAgent

D)OracleHome_NameHTTPServer

39. 下列有关包的使用说法错误的是( C)

A)在不同的包内模块可以重名

B)包的私有过程不能被外部程序调用

C)包体中的过程和函数必须在包头部分说明 D)必须先创建包头,然后创建包体

40. 实例启动后,数据库处于( C)阶段。

A. MOUNT B. OPEN C. NOMOUNT D. None

41. 当Oracle数据库启动时,如果由于操作系统的原因,一个数据文件或重做日志文件无

法正常打开或发生故障,将发生怎样的情况?(B ) A. oracle将返回错误信息,并且打开数据库 B. oracle将返回错误信息,不能打开数据库

C. oracle将返回错误信息,并自动启动数据库恢复程序 D. oracle将忽略这些文件,进入正常工作状态

42. 数据库实例启动的三个阶段依次是( B )。

A. OPEN,NOMOUNT,MOUNT B. NOMOUNT,MOUNT,OPEN C. NOMOUNT,OPEN,MOUNT D. MOUNT,OPEN,NOMOUNT

43. Diane 是一个新入行的DBA,当数据库服务器正在运行时,她执行了shutdown命令,

然后她发现Oracle在等待所有已连接到数据库的用户断开连接。请问她是采用哪种方式关闭数据库的?( A )

A. NORMAL B. ABORT C. IMMEDIATE D. NONE

44. 数据库启动过程中何时读参数文件?(C )

A. 打开数据库时 B. 装载数据库时 C. 实例启动时 D. 每个阶段都要读

45. 以下哪条命令用于删除一个约束?( C )

A. Alter TABLE MODIFY CONSTRAINT B. Drop CONSTRAINT C. Alter TABLE Drop CONSTRAINT D. Alter CONSTRAINT Drop

46. 位图索引最适用于以下哪种列?( A )

A. 重复值很高的列 B. 重复值很低的列 C. 频繁插入的列 D. 频繁更新的列

47. 在Create USER命令中DEFAULT TABLESPACE子句用于设置 )的存放位置。A

A. 用户创建的数据库对象 B. 用户创建的临时对象 C. 用户创建的系统对象 D. 以上都不对

48. 以下哪个不是系统权限?(A )

A. Select B. Drop ANY INDEX C. Create VIEW D. Create SESSON

49. 在创建用户的命令中,下列哪个关键字是限制用户可以使用的存储空间的?( D )

A. SIZE B. NEXT_EXTENT C. MAX__EXTENTS D. QUOTA

50. 以下哪个不是预定义角色?( D )

A. CONNECT B. DBA C. RESOURCE D. Create SESSON

51. 以下哪个不是创建用户过程中必要的信息?(B )

A. 用户名 B. 用户权限 C. 临时表空间 D. 口令

52. 数据字典由以下哪项组成?(A )

A. 表和视图 B. 用户和权限 C. 角色与视图 D. 用户与表

53. 建立表结构的SQL语句是(B )。

A. Create CURSOR B. Create TABLE C. Create INDEX D. Create VIEW

54. 从数据库中删除表的命令是( A )。

A. Drop TABLE B. Alter TABLE C. Delete TABLE D. USE

55. 以下哪一条语句可实现增加表employee的name列的长度到25?(A )

A. Alter TABLE employee MODIFY name VARCHAR2(25); B. Alter TABLE employee RENAME name VARCHAR2(25); C. Alter employee TABLE MODIFY name VARCHAR2(25); D. Alter employee TABLE MODIFY(name VARCHAR2(25));

56. 如果希望employee表原有的列name非空,应该使用以下哪条语句?( B)

A. Alter TABLE employee ADD name NOT NULL; B. Alter TABLE employee MODIFY name NOT NULL; C. Alter TABLE employee Alter name NOT NULL; D. Alter TABLE employee Drop name NOT NULL;

57. 撤消约束的命令关键字是( A )。

A. Drop B. DISABLE C. ENABLE D. Alter

58. Unique关键字表示创建的是哪一种索引?(B )

A. B树索引 B. 唯一性索引 C. 位图索引 D. 非唯一性索引

59. Create INDEX语句用来创建( C)。

A. 序列 B. 同义词 C. 索引 D. 视图

二、填空题

1、 某Oracle数据库服务器当前有2人联机,由于遇到紧急情况,需要马上关闭,但又想避

免可能出现的数据损坏,则DBA应该发出的关闭命令为_______Shutdown Immediate________________。

2、组成数据库的三类文件是______数据文件__、日志文件和_______控制文件___________。

3、在Oracle中,一个本地Net服务名由四部分信息构成_______通信协议、________服务器主机_______________、________端口_______________和___________服务名____________。

4、假定一张销售表年数据总量达到10GB,设计一个分区表对该表数据进行管理,将一、二、三、四季度数据分别存放到不同表分区段中,这样的分区类型是___区间分区_________________。

5、Oracle服务器(Oracle Server)由动态的_____oracle_实例_____________和静态的_______oracle数据库__________两部分构成。

6、Oracle的逻辑单元从大到小是___表区间________________、段对象、_______________区_______和Oracle块。

7、后台进程____________PMON___________负责清理非正常中断留下的孤儿会话。 8、用__________Shutdown Abort_____________命令关闭数据库后,再重新启动数据库的时候需要进行实例恢复(Instance Recovery)。

9、数据库全库损坏的恢复一般在数据库启动的_________装载______________阶段进行。 10、Oracle网络配置的3个文件中,_______sqlnet.ora________________文件可在客户端和服务器端出现,而_______listener.ora_____________文件只在服务器端出现。 11、两个表经常进行连接操作,为了提高连接的效率,可以对这两个表建立______ 聚簇____结构。

12、user1拥有对s表的所有对象权限,他想向user2授予对s表的select的权利,并且也想使user2具备将这个权利再传递的权利,请写出授权语句____grant select on _s _____to user2 with grant option_____________oracle数据库中的数据文件的扩展名是什么?______.dbf_______________

13、控制文件的扩展名是什么?_________.ctl________

14、在SQL*plus中,输入一行语句之后,在语句结尾处要写? ____分号___________________ 15、PL/SQL中游标操作包括_______定义游标___________,_________打开游标____________,读取游标,_______关闭游标________________。

三、简答题

1、简述Oracle数据库启动的三个阶段。

答:1启动到nomount状态,这个阶段数据库读取spfile/pfile文件中的参数,启动数据库实例。

2.启动到mount状态,这个阶段数据库打开控制文件,验证控制文件。. 3..启动到open状态,这个阶段数据库打开控制文件里描述的文件。 2、简述Oracle必须启动的四个后台进程。

答:安装和打开数据库SMON。用户会话是连接到服务器进程的用户进程PMON。会话不直接将数据写入磁盘,而是写入到数据库高速缓存区DBWn。日志写入器将日志缓冲区的内容写入到磁盘上的联机日志文件中LGWR。系统崩溃后,必须从重做日志提取与脏缓冲区对应的所有更改矢量,并将其应用于数据块CKPT。(第五一般没有ckpt) 3、解释冷备份和热备份的不同点以及各自的优点。

答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库。热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。缺点只能在归档模式下进行,归档模式会对系统性能尤其是磁盘i/o造成一定的影响。冷备份的优点就是操作简单,数据库性能比归档模式稍高。缺点就是等下次恢复的时候是一种不完全恢复,也就是说会有数据丢失,那么在生产库上如果用这种模式是非常危险的。

热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库。热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。冷备份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下,数据库性能会比归档模式稍好。

3、当用户进程发出conn scott/tiger@210.30.12.60:ORCL的请求后,请结合监听的概念,简述会话(Session)建立的过程。 答:(1)用户进程根据本地net服务名中的信息,联系主机210.30.12.60的TCP协议的1521端口,该端口有监听程序Listener在运行。(2)用户进程联系到Listener后,Listener会根据本地Net服务名中的服务名(ORCL)将该连接请求转接到相应的Oracle服务器上。(3)如果这个连接请求通过权限身份验证,就启动一个服务进程与用户进程会话,这样一个会话就建立了,监听也完成了它的历史使命,以后的会话过程不再通过监听。

5、B用户当前有Create Session、Create Table的权限,并在userdata表空间有50M的配额,现该用户需要创建一个表B_Table1,该表的字段StaffNO上有一个外码,该外码指向A用户的表A_Table2中的Staff#字段,要完成B_Table1的创建需要进行什么授权? Grant reference(Staff#)on A_Table to B;

6、某用户user1正与Oracle服务器进行事务处理,突然另外一个用户user2发出shutdown immediate命令,请简述该命令会对user1的影响。

答:系统立即强行中断正在处理的SQl语句,并将任何没有提交的事务全部强行回退,然后断开所有连接。对已经提交的事务,系统则将缓存区中的信息写入磁盘中,以维护数据库的一致性。

四、数据库维护应用题

1、数据库在某时刻执行了全库的冷备份,并且有自备份以来的所有归档日志。 1)发现user01.dbf文件损坏,试给出数据库完全恢复的过程。 使用备份的数据文件替代损坏的数据文件;从数据文件中挑选出时间点最旧的文件,从该数据文件的时间点开始重做事务。

2)发现所有的控制文件损坏,试给出数据库恢复的过程。

答:1)使用备份的数据文件替代损坏的数据文件;从数据文件中挑选出时间点最旧的文件,

从该数据文件的时间点开始重做事务。

2)关闭数据库后,根据参数文件所列控制文件清单,在操作系统下,用拷贝命令将备份的控制文件依次替代损坏的文件,如果因为介质故障备份控制文件不能拷贝回原处,可以拷贝至新地点,但必须在参数文件中修改其路径,且文件名不能改变,并不能出现新的控制文件名。进行下面操作:

SQLDBA>startup mount (打开数据库至mount状态)

SQLDBA>recover database using backup controlfile (进行数据库恢复工作) 数据库恢复过程中,DBA 根据需要输入日志文件名,包括online redo log 和archive redo log,直到恢复工作完成,ORACLE 将给出下列信息: Media recover complete.

2某数据库运行在非归档模式,现要求能对该数据库执行热备份,请写出将数据库调整到归档模式的过程。 答:(1)关闭数据库

SQL>shutdown immediate; (2)启动数据库到mount状态

SQL>startup mount;

(3)启动归档模式

SQL>alter database archivelog; (4)打开数据库alter database open;

3 某银行的账户表account非常重要,可是该表却在2011.12.26日被误删除了,幸好有该数据库在2011.12.10日和2011.12.27日的实体数据库热备份,现在(2012.2.21日)发现这个account表已经丢失了,写出该表恢复的过程。

五、PL/SQL编程 某表如下:

1、Create table student( sno char(10) primary key, sname char(30), birthday date, sage smallint)

完成表的创建后有以下插入语句:

Insert into student values(‘0201’, ‘xiaoli’, ‘1997-06-04’, 11) Insert into student(sno, sname) values(‘0202’, ‘xiaowei’)

请书写存储过程完成如下功能:如果有该学生的birthday字段有值则更新该学生的年龄,如无则打印“xxx学生birthday值无值”。并写一个匿名块调用该存储过程。 //创建存储过程

create or replace procedure my(mysno in student.sno%type,mysname out student.sname%type,mybir out student.birthday%type,mysage out student.sage%type) is begin

select sname,birthday,sage into mysname,mybir,mysage from student where sno=mysno; if mybir is null then

dbms_output.put_line(mysname||'学生birthday值无值。'); else

update student set sage=months_between(sysdate,mybir)/12 where sno=mysno ; end if; end;

//调用 declare

mysname student.sname%type; mybir student.birthday%type; mysage student.sage%type; begin

my('0202',mysname,mybir,mysage); end;

1、已知学院成绩管理系统中有如下关系表:学生表 students ( student_number ,student_name , major_name, current_credits ); 课程表course( course_name , description, max_students , current_students , num_credits ); 成绩表SC (student_number ,course_name ,grade );其中student_number 学号,student_name学生姓名, major_name 专业名, current_credits当前所选修学分,course_name课程名称,description 课程描述,max_students最大选修的学生人数,current_students当前选修的学生人数,num_credits学分数,grade 成绩。基于以上成绩管理系统中的关系表,写一个过程,传入某学生的学号,打印出该生选修的所有的课程名。

答: create or replace procedure cur_courses(stuID in SC.student_number%type ) Is

courName SC.course_name; CURSOR courses _cursor IS

Select cour_name from SC where SC.student_number=stuID;

Begin

OPEN courses _cursor;

LOOP

FETCH courses _cursor INTO courName ; EXIT WHEN v_emp_cursor%NOTFOUND; DBMS_OUTPUT.PUT_LINE(courName ); END LOOP;

CLOSE v_emp_cursor; End;

第一题的黄淮学院成绩管理系统中相关表,请编写触发器完成以下功能:当对SC表执行插入操作的时候,应相应的对students和classes表的相应字段更新。比如,当向SC表插入一行数据时,则该生的当前所选修学分(current_credits)字段应增加,同时,对应的课程的当前学生数(current_student)字段也应增加。 create or replace trigger t_student After insert on sc for each ROW DECLARE

v_cnt NUMBER; BEGIN

SELECT COUNT(*) INTO v_cnt IF v_cnt = 0 THEN

INSERT INTO student (student_number) VALUES

(:NEW.student_number); INSERT INTO course (current_students) VALUES

(:NEW. current_students); END IF;

END t_student;

FROM student;

本文来源:https://www.bwwdw.com/article/aaiv.html

Top