Oracle期末考试试题及答案.docx
《Oracle期末考试试题及答案.docx》由会员分享,可在线阅读,更多相关《Oracle期末考试试题及答案.docx(9页珍藏版)》请在冰豆网上搜索。
Oracle期末考试试题及答案
栏息信
生
考
一、选择题:
(本题共20个小题,每小题2分,共40分)
1当Oracle服务器启动时,下列哪种文件不是必须的()。
A.数据文件B.控制文件C.日志文件D.归档日志文件
2.在Oracle中,一个用户拥有的所有数据库对象统称为()。
A.数据库B.模式C.表空间D.实例
3•在Oracle数据库的逻辑结构中有以下组件:
1.表空间2.数据块3.区4.段
这些组件从大到小依次是()。
A.1—2—3—4B.1—4—3—2C.1—3—2—4D.4—1—3—2
4.下列哪个子句实现对一个结果集进行分组和汇总()。
A.HAVINGB.ORDERBYC.WHERED.GROUPBY
5.在Oracle数据库中,()用户模式存储数据字典表和视图对象。
A.SYSB.SYSTEMC.SCOTTD.SYSDBA
6•以下不属于命名的PL/SQL块的是()。
A•程序包B•过程C•游标D•函数
7.在Oracle中创建用户时,若未提及DEFAULTTABLESPACE关键字,则Oracle就将()表空间分配给用户作为默认表空间。
B.SCOTT
C.SYSTEM
D.SYS
8.在Windows操作系统中,Oracle的()服务是使用iSQL*Plus必须的。
A.OracleHOME_NAMETNSListenerB.OracleServiceSID
C.OracleHOME_NAMEAgentD.OracleHOME_NAMEHTTPServer
9.下列哪个语句可以在SQL*Plus中直接调用一个过程()。
A.RETURNB.CALLC.SETD.EXEC
10.如果服务器进程无法在数据缓冲区中找到空闲块,为添加从数据文件中读出的数据块,则系统会
启动如下哪一个进程()
A.CKPTB.DBWRGLGWRD.SMON
11.下列哪一个锁模式不属于Oracle()。
A.死锁B.排他锁C.行级共享锁D.共享锁
12有字符串数据”test”分别存放到char(10)和varchar2(10)类型的字段中,其实际存储长度为()
A.104B.44C.1010D.410
13.在Oracle中,当控制一个显式游标时,下面哪种命令包含INTO子句()。
A.FETCHB.CLOSEC.OPEND.CURSOR
14.ORACLE中,用来判断列值是否为空的操作符是()。
A.==NULLB.NULLISC.ASNULLD.ISNULL
15查询一个表的总记录数,可以采用()统计函数。
A.AVG(*)B.SUM(*)C.COUNT(*)D.MAX(*)
16.以下的哪个命令可以将SQL命令的运行结果保存到文件中()。
A.SAVEB.SPOOLC.GETD.INPUT
17为了去除结果集中重复的行,可在SELECT语句中使用下列哪个关键字()。
A.ALLB.DISTINCTC.SPOOLD.HAVING
18.关于模式的描述下列哪一项不正确()。
A.表或索引等模式对象一定属于某一个模式
B.在Oracle数据库中,模式与数据库用户是一一对应的
C.一个表可以属于多个模式
D.一个模式可以拥有多个表
19.下列SELECT语句中,哪些子句可以包含子查询()。
A.SELECTB.GROUPBYC.WHERED.ORDERBY
20在下列模式对象中,哪个对象不会占用实际的存储空间()。
A.视图B.表C.索引D.簇
二、填空题(共8小题,10空需要填写,每空1分,共10分)
1.具有名称的一组相关权限的组合。
2.一个表空间物理上对应一个或多个件。
3.标准的SQL语言语句类型可以分为:
数据操纵语句(DML)和。
4.如果需要向表中插入一批已经存在的数据,可以在INSERT语句中使用语句。
5.通过视图修改数据时,实际上是在修改的数据。
6.如果需要向表中插入一批已经存在的数据,可以在INSERT语句中使用句。
7.在众多的事务控制语句中,用来撤销事务的操作的语句为用于持久化事务对数据库操作
的语句是。
8.在多进程Oracle实例系统中,进程分为、后台进程和服务器进程。
三、程序填空(共10小题,10空需要填写,每空3分,共30分)
1•假设当前用户是SCOTT用户以普通用户登录,口令为tiger,请写出该用户以管理员身份登录的命令2假设用户SCOTT以管理员身份登录,现需创建用户Lisa,口令是Lisa,请写出相应的命令
3•假设用户SCOTT以管理员身份登录,已知用户账号Lisa被锁定,需为他解除锁定,请写出相应的命
令;
4.假设用户SCOTT以管理员身份登录,需授予用户Lisa对SCOTT用户模式下的EMP表进行查询
(SELECT)的权限,请写出相应的命令;
5.假设用户SCOTT以管理员身份登录,在SQLPlus的SQL>提示符下,希望用户Lisa用Lisa以普通用户
身份登录到系统,请写出相应的命令;
6•假设用户Lisa用Lisa以普通用户身份登录到系统,现需查看本用户下的Class表的结构,请写出相应
的命令;
7.假设用户Lisa用Lisa以普通用户身份登录到系统,用命令select*fromClass查询Class表中的数据,
现需将缓冲区中的SQL命令保存到C盘根目录下的class.txt文件中,请写出相应的命令
J
8•假设用户Lisa用Lisa以普通用户身份登录到系统,现需查看本用户下有哪些表,请写出相应的命令
9.假设用户Lisa用Lisa以普通用户身份登录到系统,现需为Class表的ID列添加一个名为PK_CLASS_ID的主键约束,请补充完整相应的命令
ALTERTABLEClass
10.假设用户Lisa用Lisa以普通用户身份登录到系统,现需创建一个UPDATE语句来修改本用户下ARTISTS表中的数据,并且把每一行的T_ID值都改成15,应该使用的SQL语句是;
四、编程题:
(本题共2小题,每题10分,共20分)
1.请按要求完成以下程序的编写。
(5空,每空2分,共10分)
以下存储过程借助游标用于实现对员工工资(Sal)的调整,调整方案为:
对于员工号
(empno)在7000到7200间的员工,若其原工资在1000之下,则加薪20%。
(1)请完成以下程序:
CREATEORREPLACEPROCEDURERise_sal
IS
v_empnoEmp.empno%type;
v_salEmp.sal%type;
V_ErrorTextVarchar(200);
CURSORcursor_sal//定义游标CURSORcursor_sal
IS
①//
BEGIN
②;//打开游标
LOOP
FETCHcursor_sal③;
EXITWHENcursor_sal%NOTFOUND;〃逐行提取数据
IFv_sal<1500THEN
UPDATEEmpSETsal=sal*0.20+Sal//更新数据
ENDLOOP;
栏
名
姓
息
.级
生班
级
考
CLOSEcursor_sal;//关闭游标
④;〃提交事务
Exception
WhenothersTHEN
CLOSEcursor_sal;〃关闭游标
rollback;//回滚事务
v_Errortext:
='游标使用错误’;
dbms_output.put_line(程序异常终止,出现以下错误:
'||v_Errortext);
END;
⑵假设用户已登录SQLPlus系统,处于“SQL>»令提示符下,现需执行存储
过程Rise_sal,请写出命令:
⑤
2.创建一个函数get_sal,用于实现对表Emp(如下图)给定一个员工号(Empno),通过函数获取该雇员的工资值,请完成以下程序。
(1)请将函数get_sal补充完整(3空,每空2分,共6分)
CREATEORREPLACEFUNCTIONget_sal
(v_emp_noINemp.empno%TYPE)
IS
emp.sa%TYPE:
=0;
BEGIN
SELECTsal
INTOv_emp_sal
FROMemp
RETURN(v_emp_sal);
ENDget_sal;
(2)
(4分)
用函数get_sal查询员工7521号的工资,请写出一种查询方式
课程名称
一、选择题:
(本题共
20小题,
每题2分,共40分)
题号12
3
4
5
题号
6
7
8
9
10
答案DB
B
D
A
答案
C
C
B
D
D
题号1112
13
14
15
题号
16
17
18
19
20
答案AA
A
C
C
答案
B
B
C
C
A
二>
填空题(本大题共
8小题,
10空,
每空
1分,共10分)
题号
答案
1-2
角色
数据
3
数据定义语句(DDL)
数据控制语句(DCL)
4
select
5-6
基本表
select
7
ROLLBACK
COMMIT
8
用户进程
1
三、程序填空题(共10小题,10空需要填写,每空3分,共30分)
题号
答案
1
connscott/tigerassysdba;
2
createuserLisaidentifybyLisa
3
alteruserLisaaccountuniock;
4
grantselectonemptoLisa;
5
connLisa/Lisa;
6
descClass;
7
saveC:
\class.txt;
8
selecttablenamefromusertables;
9
AddconstraintPKCLASSIDPRIMARYKEY(ID);
10
updateartistssetT_ID=15;
四、编程题(本大题共2小题,每题10分,共20分)
1.(5空,每空2分,共10分)
⑴SELECTempno,sal
FROMemployee
WHEREempnoBETWEEN7300AND7600;
(2)OPENcursor_sal
(3)INTOv_empno,v_sal
(4)COMMIT;
(5)EXECRise_sa;
2.
(1)请将函数get_sal补充完整(3空,每空2分,共6分)
RETURNNUMBER
v_emp_sal
v_emp_no
(4分)
(2)用函数get_sal查询员工7521号的工资,请写出一种查询方式
Selectget_sal(7521)
fromdual;