Oracle复习题.docx
《Oracle复习题.docx》由会员分享,可在线阅读,更多相关《Oracle复习题.docx(22页珍藏版)》请在冰点文库上搜索。
![Oracle复习题.docx](https://file1.bingdoc.com/fileroot1/2023-7/5/83230d5c-bea1-4b82-9fb3-4f610b72f4fe/83230d5c-bea1-4b82-9fb3-4f610b72f4fe1.gif)
Oracle复习题
、选择题
1.SQL*PLUSSORACL数据库系统中的作用,以下叙述正确的是()
A.
是服务器运行的基础构件。
为所有的ORACL应用程序提供一
是ORACL数据库服务器的主要组成部分
B.是ORACL数据库系统底层网络通信协议个公共的通信平台。
通过它可以向服务器发送SQL命
C•是ORACL客户端访问服务器的一个工具令。
D.是ORACL客户端到客户端的点对点的通信工具,用来传递各个客户端的数据。
2.命令sqlplus/nolog的作用是()
A.仅创建一个ORACL实例,但并不打开数据库.
B.仅创建一个ORACL实例,但并不登录数据库.
C.启动sqlplus,但并不登录数据库
D.以nolog用户身份启动sqlplus
3.在SQL*PLUS^显示EMP表结构的命令是()
A.
SHOWDESCEMP
4.在SQL*PLUS^境中可以利用DBMS_OUTP包中的PUT_LINE方法来回显服务器端变量的值
但在此之前要利用一个命令打开服务器的回显功能,这一命令是()
A.
正斜杠(/)反斜杠(\)感叹号⑴句号(.)
D.
5.在SQL*PLUS^执行刚输入的一条命令用()
(A)
(B)
(C)
(D)
6.在SQL*PLUS^显示当前用户的命令是()
(A)showaccount
(B)showaccountname
(C)showuser
(D)showusername
7.当用SQL*PLU已经登录到某一数据库,此时想登录到另一数据库,应该用命令
()
(A)CONN(B)DISC(C)GOTO(D)LOGON
8.假定表A中有十万条记录,要删除表中的所有数据,但仍要保留表的结构,请问用以下哪个命令效率最高()
(A)deletefroma;
(B)droptablea;
(C)trunctablea;
(D)truncatetablea;
9.如果一个进程意外终止QRACLES用下列哪一个后台进程来释放它所占用的资源()
(A)
(D)PMON
DBWn(B)LGWR(C)SMON
10.ORACLE络侦听器位于()
(A)ORACLE客户端
(B)ORACLE!
服务器端
(C)ORACLE客户端和服务器端
(D)ORACLE的中间层服务器端
11.
表是表空间的基础,表空间是所有相关表所占空间的总和
表空间是由一至多个数据文件构成的,每个表占用一个数据文件一张表可以占用多个表空间,一个表空间也可以容纳多张表一个表空间可以容纳多张表,但一张表只能归属于一个表空间
"->"表示组成关系,下面哪一个组成关系正确表示了ORACL数据库的
以下关于表空间的叙述正确的是()
(A)
(B)
(C)
(D)
12.用符号
块->段->区->表空间->数据库块->区->段->表空间->数据库块->表空间->区->段->数据库块->段->表空间->区->数据库
逻辑存储结构()
(A)
(B)
(C)
(D)
13.根据不同的需要,可对数据库服务器进行相应的启动方式,当以STARTUPMOUN方式启动时,以下说法正确的是()
(A)仅仅创建一个数据库实例
(B)创建了数据库实例并且挂载了数据库
15.
在ORACL客户端网络配置文件中"SID"参数值为()
(A)
(B)
(C)
(D)
过程和函数都是命名的PL/SQL块,但执行效率要比普通PL/SQL块高过程和函数都是命名的子程序,每次执行前由数据库进行编译
过程是没有返回参数的,而函数是有返回参数的
17.以下关于数据库包的叙述正确是的()
(A)
(B)
(C)
(D)
过程不带输入参数,而函数是要带输入参数的包是由包头和包体组成的,在定义包头时,必须也要同时定义好包体
包是由包头和包体组成的,包头和包体是可以分别创建的
包是由包头和包体组成的,包头和包体可以写在一起,也可以分别定义包是由包头和包体组成的,包头是包体中所有变量的定义区,而包体则只
是执行代码部分
18.当对数据库进程调整时,要求除DB/用户外的其它用户都不能访问数据库,这时可以用以下哪种数据库启动方式()
(A)STARTUPNOMOUNT
(B)STARTUPMOUNT
(C)STARTUPRESTRICT
(D)STARTUPFORCE
19.在关闭数据库时,要求当前尚未处理完成的事务立即停止处理,未完成事务进行回滚.可采用下列哪种方式()
(A)SHUTDOWN
(B)SHUTDOWNABORT
(C)SHUTDOWNIMMEDIATE
(D)SHUTDOWNTRANSACTIONAL
20.以下ORACL认证的级别由低到高排列正确的是()
(A)OCA->OCP->OCM
(B)OCM->OCP->OCA
(C)OCP->OCA->OCM
(D)OCA->OCM->OCP
21.
OracleDatabase包括哪三类文件?
数据文件,日志文件
备份文件,归档日志文件
归档日志文件,跟踪文件
22.在以下PL/SQL循环语句的括号位置应该填写
foriin1()10loop
(A)TO
(B)->
(C)..
(D)INC
23.emp表是雇员信息表,sal字段存放是的雇员的月薪以下哪个变量可以存放sal类型的值
(A)v_salemp%rowtype;
(B)v_salemp.sal%type;
(C)v_salemp.sal.%type;
(D)v_sal%type(emp.sal);
24.
字符串是用单引号加以界定的
字符串是用双引号加以界定的对于单行注释可以用双斜线//开始多行注释是以大括号{}加以界定的
在PL/SQL环境中,以下说法正确的是
(A)
(B)
(C)
(D)
25.客户端用于网络连接的两个配置文件文件是
(A)TNSNAMES.ORA和SQLNET.ORA
(B)TNSNAMES.ORA和LISTENER.ORA
(C)TNSNAMES.ORA口INIT.ORA
(D)SQLNET.ORA和LISTENER.ORA
26.当表的重复行数据很多时,应该创建的索引类型应该是(
(A)B树
34.下列不属于SGA的是()
A)块缓冲区(DatabaseBuffers)B)共享池
C)库缓存(Librarycache)D)专用服务器模式下的会话信息(SessionInformation)
35.下列关于Oracle启动的说法中不正确的是()
A)数据库可以先startupmount,然后用alterdatabaseopen将数据库打开联机
B)数据库可以在open的状态下,用alterdatabasemount将数据库降到mount状态
C)数据库可以先startupnomount,然后用alterdatabaseopen将数据库打开到open联机状态
open的状态
Select语句时,下列哪个进程负责从磁盘中获得用户需要的
D)利用startup命令,如果没有什么故障,数据库可以直接到
36.
在Oracle中,当用户执行
37.在Oracle中,有一个教师表
IDnumber(5)
Namevarchar2(10)
Emailvarchar2(20)
下面哪个语句显示没有Email地址的教师的姓名()
A)selectnamefromteacherwhereemail=null;
B)selectnamefromteacherwhereemail<>null;
C)selectnamefromteacherwhereemailisnuII;
D)selectnamefromteacherwhereemailisnotnull;
38.
OracleHome_NAMETNSListenerOracleServiceSID
OracleHome_NameAgentOracleHome_NameHTTPServer
在windows操作系统中,Oracle的()服务监听并接受客户端应用程序的连接请求
A)
B)
C)
D)
39.下列有关包的使用说法错误的是()
在不同的包内模块可以重名包的私有过程不能被外部程序调用包体中的过程和函数必须在包头部分说明必须先创建包头,然后创建包体
40.实例启动后,数据库处于()阶段。
41.当Oracle数据库启动时,如果由于操作系统的原因,一个数据文件或重做日志文件无
42.
法正常打开或发生故障,将发生怎样的情况?
(
43.
数据库实例启动的三个阶段依次是(
44.Diane是一个新入行的DBA,当数据库服务器正在运行时,她执行了shutdown命令,
然后她发现Oracle在等待所有已连接到数据库的用户断开连接。
请问她是采用哪种方式关
闭数据库的?
()
A.NORMALB.ABORT
45.
数据库启动过程中何时读参数文件?
(
46.以下哪条命令用于删除一个约束?
(
A.
B.DropCONSTRAINT
AlterTABLEMODIFYCONSTRAINT
B.
47.在CreateUSER命令中DEFAULTTABLESPACE子句用于设置()的存放位置。
48.以下哪个不是系统权限?
()
A.SelectB.DropANYINDEXC.CreateVIEWD.CreateSESSON
49.在创建用户的命令中,下列哪个关键字是限制用户可以使用的存储空间的?
(
50.以下哪个不是预定义角色?
()
D.CreateSESSON
A.CONNECTB.DBAC.RESOURCE
51.
以下哪个不是创建用户过程中必要的信息?
(
52.
数据字典由以下哪项组成?
(
53.
建立表结构的SQL语句是(
54.
从数据库中删除表的命令是(
55.以下哪一条语句可实现增加表employee的name列的长度到25?
()
A.AlterTABLEemployeeMODIFYnameVARCHAR2(25);
B.AlterTABLEemployeeRENAMEnameVARCHAR2(25);
C.AlteremployeeTABLEMODIFYnameVARCHAR2(25);
D.AlteremployeeTABLEMODIFY(nameVARCHAR2(25));
56.如果希望employee表原有的列name非空,应该使用以下哪条语句?
()
A.AlterTABLEemployeeADDnameNOTNULL;
B.AlterTABLEemployeeMODIFYnameNOTNULL;
C.AlterTABLEemployeeAlternameNOTNULL;
D.AlterTABLEemployeeDropnameNOTNULL;
57.撤消约束的命令关键字是(
、填空题
端口。
4、假定一张销售表年数据总量达到10GB,设计一个分区表对该表数据进行管理,将一、
二、三、四季度数据分别存放到不同表分区段中,这样的分区类型是范围分区。
5、Oracle服务器(OracleServer)由动态的Oracle实例(OracleInstance)和静态的Oracle数据库(OracleDatabase)两部分构成。
6、Oracle的逻辑单元从大到小是表空间、段对象、区和Oracle块。
7、后台进程进程监控进程(PMON)负责清理非正常中断留下的孤儿会话。
8、用ShutdownAbort命令关闭数据库后,再重新启动数据库的时候需要进行实例恢复
(InstaneeRecovery)。
9、数据库全库损坏的恢复一般在数据库启动的装载(Mount)阶段进行。
10、Oracle网络配置的3个文件中,Sqlnet.ora文件可在客户端和服务器端出现,而Listener.ora文件只在服务器端出现。
11、两个表经常进行连接操作,为了提高连接的效率,可以对这两个表建立聚簇结构。
12、user1拥有对s表的所有对象权限,他想向user2授予对s表的select的权利,并且也想
使user2具备将这个权利再传递的权利,请写出授权语句grantselectonstouser2with
的扩展名是什么?
grantoption__oracle数据库中的数据文
数据文件dbf
重日志文件-log
控制文件.cd
归档日志arc
使用man建立的备份集.bkp
13、控制文件的扩展名是什么?
____
14、在SQL*plus中,输入一行语句之后,在语句结尾处要写
15、PL/SQ中游标操作包括_定义游标_,_打开游标
三、简答题
1、简述Oracle数据库启动的三个阶段。
非装载阶段装载阶段打开阶段
2、简述Oracle必须启动的四个后台进程。
数据写进程(DBWR)、日志写进程(LGWR)、系统监控进程(SMON)、进程监控进程(PMON)
3、解释冷备份和热备份的不同点以及各自的优点。
热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。
而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库。
擞据库性能会比归档模式稍好。
热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。
冷备份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下
4、当用户进程发出
述会话(Session)
connscott/tiger@210.30.12.60:
ORCL的请求后,请结合监听的概念,简建立的过程。
川丄丄右的呛》如1国526听小,
〔了专口卜儿生
-【2販疋电)税据MYDAFA(1-
;」Z说详名巾信息•联系T机wpj-thirAk
"“二血“"tfjI'CP协议的1521端门,该端门有
:
[I'^i'cner心近行
I、次Process联系JI]Listenerfn'>Listener根
抿\jYSniA;:
I彷说¥亍名(orcl}将该ii接计冰转搖到朴:
丄Et'JfJraele堰务器上
';门裂这卜连接请求適过杈眼射別h卜就启动r服务进稈'SECfProg•泸户进【程、「讼W2贰过样一个会话就曲也U知花的帀史便命•L'用旳:
曲程卜不也蛊听
5、B用户当前有CreateSessionCreateTable的权限,并在userdata表空间有50M的配额,现该用户需要创建一个表B_Table1,该表的字段StaffNO上有一个外码,该外码指向A用户的表A_Table2中的Staff#字段,要完成B_Table1的创建需要进行什么授权?
p141,P133
6、某用户user1正与Oracle服务器进行事务处理,突然另外一个用户user2发出shutdown
immediate命令,请简述该命令会对user1的影响。
如果userl用户的事务没有提交,则此命令将事务全部强行回退,然后断开所有连接如果事务已经提交,系统则将缓存区的信息写入到磁盘中,以维护数据库的一致性。
四、数据库维护应用题
1、数据库在某时刻执行了全库的冷备份,并且有自备份以来的所有归档日志。
1)发现user01.dbf文件损坏,试给出数据库完全恢复的过程。
P156p167
2)发现所有的控制文件损坏,试给出数据库恢复的过程。
2、某数据库运行在非归档模式,现要求能对该数据库执行热备份,请写出将数据库调整到归档模式的过程。
P45
3、某银行的账户表account非常重要,可是该表却在2011.12.26日被误删除了,幸好有该
数据库在2011.12.10日和2011.12.27日的实体数据库热备份,现在(2012.2.21日)发现这
个account表已经丢失了,写出该表恢复的过程。
P173
4、某数据库运行在非归档模式下,现要求能对该数据库执行热备份,请写出将数据库调整到归档模式的过程。
五、PL/SQL编程
某表如下:
1、Createtablestudent(
snochar(10)primarykey,
snamechar(30),
birthdaydate,
sagesmallint)
完成表的创建后有以下插入语句:
Insertintostudentvalues(0201',‘iaoli',1997-06-04',11)
Insertintostudent(sno,sname)values(0202',Xiaowei')
请书写存储过程完成如下功能:
如果有该学生的birthday字段有值则更新该学生的年龄,如
无则打印"XXX学生birthday值无值”。
并写一个匿名块调用该存储过程。
P254
SQL>
EQL>
EQL>
2
3
4
5
5
7
9
g
10
11
12
13
14
setserveroutputan:
createorreplaceprocedureprolCs_iioinchar)
I
LS
v_bithd^ydmte:
begin
selecttirtKdayintov_lithdayfromstudentwheresiL&=s_no;i£^bitAdayisnullthen
dbms_>iitputputlin«(5_nc11’学生birthday无值'):
v_sags:
=moTith5_betweeK(sysdai«jv_\iithday)/12;UpdateStudentsetS4ge=visagewhers3no=s_iio:
endif;
end;
Procedurecreated
SUL>
SQL>declare
v_sR(jcKar(10):
=*0202*;l>4girk
prol(伫sno);
2
3
4
5
5
7
end;
FL/3GLproceduresucc&ssfullycompleted
EQL>
createorreplacepackage>ackTestis
typerefcurisrefcursor;
procedureprint_course(stu_numberinstudenstudent_number%type);endpack3;
createorreplacepackagebodpackTestis
procedureprint_course(stu_numberinstudenstudent_number%type)ismycursorrefcur;
stu_coursesc.course_name%type;
begin
openmycursorforselectcourse_namefromscwherestudent_number=stu_number;
fetchmycursorintostu_coursedbms_outputput_line(学号是:
’||stu_number||的学生选修的课程有:
');
whilemycurso%foundloopdbms_output.put_line(stu_course『');fetchmycursorintostu_courseendloop;
closemycursor;
end;
end;
第一题的黄淮学院成绩管理系统中相关表,请编写触发器完成以下功能:
当对行插入操作的时候,应相应的对
7
S
10
11
12
13
14
15
16
17
1ft
updatestudents
setscurrentcredits=scurrentcredits+v_creditswheres_id=:
new.s_id;
updatecourses
setc_current_students=c_current_students+lwherec_name=:
new•c_name;
endupdateRegisterStudent;