高起专软件技术专业Oracle数据库设计与应用练习卷及答案完成.docx
- 文档编号:12407457
- 上传时间:2023-04-18
- 格式:DOCX
- 页数:19
- 大小:21.35KB
高起专软件技术专业Oracle数据库设计与应用练习卷及答案完成.docx
《高起专软件技术专业Oracle数据库设计与应用练习卷及答案完成.docx》由会员分享,可在线阅读,更多相关《高起专软件技术专业Oracle数据库设计与应用练习卷及答案完成.docx(19页珍藏版)》请在冰豆网上搜索。
高起专软件技术专业Oracle数据库设计与应用练习卷及答案完成
Oracle数据库设计与应用复习题
一、选择题
1、如果用户需要在安装好Oracle的系统上创建、修改和删除数据库,就需要使用()。
A.通用安装器B.数据库配置助手
C.企业管理器D.网络配置助手
2、要删除一个大表里的所有记录,并释放占用的表空间,可以使用()命令。
A.DELETEFROM表名;B.DELETE表名;
C.TRUNCATETABLE表名;D.TRUNCATE表名;
3、在游标的属性中,()指出是否发现一条记录。
A.%ISOPENB.%FOUND
C.%NOTFOUNDD.%ROWCOUNT
4、要以自身的方案创建私有同义词,用户必须拥有()系统权限。
A.CREATEPRIVATESYNONY
B.CREATESYNONYM
C.CREATEPUBLICSYNONYM
D.CREATEANYSYNONYM
5、可以利用()伪列来访问序列。
A.NEXTVAL和PREVAL
B.CURRVAL和NEXTVAL
C.CACHE和NOCACHE
D.MAXVALUE和MINVALUE
6、()语句在执行语句前先计算选择器的值。
A.IF-THENB.IF-THEN-ELSE
C.FORD.CASE
7、以零作除数时会引发()异常。
A.VALUE-ERRORB.ZERO-DIVIDE
C.STORAGE_ERRORD.NO_DATA_FOUND
8、显式游标在PL/SQL程序的()部分声明。
A.BEGINB.LOOP
C.DECLARED.START
9、要更新游标结果集中的当前行,应使用()子句。
A.WHERECURRENTOFB.FORUPDATE
C.FORDELETED.FORMODIFY
10、以下不属于命名PL/SQL块的是()。
A.函数B.过程
C.触发器D.游标
11、子程序的()模式参数可以在调用子程序时指定一个常量。
A.INB.OUT
C.INOUTD.INOUT
12、数据字典()包含存储过程的代码文本。
A.USER_OBJECTSB.USER_TEXT
C.DBA_PROCEDURED.USER_SOURCE
13、在PL/SQL块中,下列()变量名合法。
A.3dffswaB.AVariable
C.Rose$$_1D.Ta%a
14、游标的属性中,()的意义是指出是否打开了游标。
A.%FOUNDB.%ISOPEN
C.%NOTFOUNDD.%ROWCOUNT
15、()对查询结果没有任何影响,但能提高获取查询结果的速度。
A.表B.索引C.视图D.序列
16、()是一个表示表的数据的数据库对象,它允许用户从一个或一组表中通过一定的查询语句建立一个“虚表”。
A.表B.索引C.视图D.序列
17、()是一种可被多个用户使用的用于产生一系列惟一数字的数据库对象。
A.表B.索引C.视图D.序列
18、下列表达1979年10月8日的日期表示中,()是合法的日期格式。
A.8-10-79B.8-10月-79
C.10月-8-79D.79-10月-8
19、下列数据库模式对象中,具有EXECUTE对象权限的是()。
A.表B.视图
C.过程D.序列
20、下列数据库模式对象中,不具有SELECT对象权限的是()。
A.表B.视图
C.过程D.序列
二、填空题
1、一个为一个数据库用户所拥有,并且名称与用户名相同,是一个数据库的逻辑结构的集合。
2、视图包含了当前用户方案下的存储过程定义文本。
3、数据库的结构分为和。
4、Oracle的进程分为、和3种。
5、Oracle权限分为、。
6、给用户授予和回收权限的命令的关键字分别是和。
7、PL/SQL是和的结合。
8、PL/SQL中的块主要有两种类型:
和。
9、是Oracle数据库中数据的逻辑组织,它存储段的集合,在操作系统级映射到一个或多个上去。
10、一个就是一个数据库对象的别名,当应用时,Oracle服务器会自动用来代替。
11、在循环中可以用表示递减循环。
12、要对查询结果集中的多行数据进行逐行处理,应该使用技术。
13、在声明游标的SELECT语句中不能使用子句。
14、在显式游标的使用过程中,返回从游标中取出的记录总行数。
15、使用游标FOR循环时,不能使用语句、语句和语句。
16、使用游标FOR循环时,游标FOR循环中用到的记录变量需要事先声明,该记录变量是由系统隐式定义的与游标数据行一致的记录型变量。
17、异常分为:
和两种。
18、存储过程的参数模式有:
、和3种。
19、修改存储过程或函数的语法格式与定义存储过程或函数的语法格式的不同之处是。
20、一个触发器由、、、和5部分组成。
三、问答题
1、使用什么工具创建和删除数据库?
2、使用什么工具配置和修改监听程序和数据库的网络服务名?
3、Oracle数据库设计的步骤是什么?
4、表空间与数据库、数据文件之间的关系是怎样?
5、若要备份/恢复某个表空间,需要将表空间设置为什么状态?
在ALTERTABLESPACE命令中用什么子句来设置?
6、如何删除表空间及表空间中包含的数据库对象?
7、什么是角色?
简述角色和用户之间的关系。
8、简述通过角色管理用户的权限具体步骤。
9、概要文件的作用是什么?
10、比较表和视图两者间的异同。
11、使用同义词有哪些好处?
12、一个PL/SQL块有哪几部分组成?
哪些是必须的?
哪写是可选的?
13、简述游标使用的步骤。
14、处理用户自定义异常的步骤有哪些?
15、比较存储过程和函数的异同。
16、比较存储过程和触发器的异同。
17、那个系统表存储了本方案存储过程、函数和触发器的信息?
18、简述游标的作用。
19、如果在调用存储过程时需要从存储过程返回值,应该使用参数。
20、创建表时,如果存在外键关系,则创建表的先后顺序有什么规定?
四、根据要求写命令
1、将user12方案下的staff表中性别(ssex)为男的记录复制成新表staff_bk1。
2、将user12方案下的staff表中性别(ssex)为女的记录添加到表staff_bk1中。
3、创建表空间tabs11,包含一个数据文件ygbxfile1.dbf,路径为“D:
\oracle\product\10.1.0\oradata\ygbx”,大小为10MB,如果数据文件已经存在,则被覆盖。
数据文件具有自动扩展属性,每次增量为128KB,最大值为100MB。
4、创建用户ygbx_user1,口令为“user1”,默认表空间为“tabs11”,临时表空间为“temp”,创建后解锁该用户。
5、创建一个角色ygbx_role1,并通过该角色将user12.staff表的增删改查权限授予所有用户。
6、为user12.staff表创建一个公用同义词staff_synonym。
7、定义一个记录变量c1,用于存放staff表中的一条记录。
8、根据ygbx数据库中的business表和staff表建立一个视图view1,通过view1可以查询每个员工的sno,sname,ssex,sbirthday,及员工所在企业编号(bno)和企业名称(bname)。
五、请写出以下PL/SQL程序块或子程序的功能或输出结果。
1、写出以下PL/SQL程序块的输出结果:
SETSERVEROUTPUTON
DECLARE
n1NUMBER(5);
n2NUMBER(5);
BEGIN
n1:
=10;
n2:
=10;
DECLARE
n1NUMBER(5);
BEGIN
n1:
=20;
n2:
=n1;
DBMS_OUTPUT.PUT_LINE('子块:
n1='||n1||',n2='||n2);
END;
DBMS_OUTPUT.PUT_LINE('主块:
n1='||n1||',n2='||n2);
END;
2、写出以下程序块的功能:
setserveroutputon
declare
r1scott.dept%rowtype;
begin
select*intor1fromscott.dept
Wheredeptno='10';dbms_output.put_line(r1.deptno||','||r1.dname||','||r1.loc);
end;
3、写出以下程序块的功能:
SETSERVEROUTPUTON
DECLARE
scorefloat:
=&score;
BEGIN
IFscore<0ORscore>100THEN
DBMS_OUTPUT.PUT_LINE('成绩不合理');
ELSIFscore>=60then
DBMS_OUTPUT.PUT_LINE('合格');
ELSE
DBMS_OUTPUT.PUT_LINE('不合格');
ENDIF;
END;
4、写出以下程序块的功能:
SETSERVEROUTPUTON
DECLARE
jNUMBER:
=1;
iNUMBER:
=1;
BEGIN
LOOP
j:
=j*i;
i:
=i+1;
EXITWHENi>10;
ENDLOOP;
DBMS_OUTPUT.PUT_LINE(j);
END;
5、写出以下程序块的输出结果:
SETSERVEROUTPUTON
DECLARE
sNUMBER:
=0;
BEGIN
FORiINREVERSE1..5LOOP
s:
=s+i;
DBMS_OUTPUT.PUT_LINE('i='||i)
ENDLOOP;
DBMS_OUTPUT.PUT_LINE('1--5的和为:
'||s);
END;
6、写出以下程序块的功能:
SETSERVEROUTPUTON
DECLARE
nNUMBER;
CURSORstaff3_cursorISSELECT*FROMstaffWHEREssex='男';--声明游标
c1staff3_cursor%rowtype;--定义参考游标结构的记录变量
BEGIN
selectcount(*)intonfromstaffwheressex='男';
OPENstaff3_cursor;--打开游标
FORiin1..nLOOP
FETCHstaff3_cursorintoc1;--提取游标数据行
DBMS_OUTPUT.PUT_LINE(c1.sno||','
||c1.sname||','||c1.sbirthday);
ENDLOOP;
CLOSEstaff3_cursor;--关闭游标
END;
7、写出下列存储过程的功能:
CREATEPROCEDUREstaff2_pro
(c1INCHAR,v1_staffOUTstaff%ROWTYPE)
AS
BEGIN
SELECT*INTOv1_staffFROMstaff
WHEREsno=c1;
END;
8、写出下列触发器的功能:
CREATETRIGGERstaff_trig
AFTERINSERTORUPDATEORDELETEONstaff
FOREACHROW
BEGIN
IFINSERTINGTHEN
DBMS_OUTPUT.PUT_LINE('正在向staff表插入数据!
');
ELSIFUPDATINGTHEN
DBMS_OUTPUT.PUT_LINE('正在staff中更新数据!
');
ELSIFDELETINGTHEN
DBMS_OUTPUT.PUT_LINE('正在staff删除数据!
');
ENDIF;
END;
六、编写程序
1、利用标准CASE语句根据grade变量的值ABCDE分别输出“优秀”、“良好”、“中等”、“及格”、“不及格”。
2、使用while循环,编程计算并输出n!
。
n从键盘输入。
3、将第五题中第6小题改写成带参数游标并使用while循环来实现。
4、将第五题中第6小题改写成不带参数的游标FOR循环来实现。
5、编写存储过程swap交换两个参数,并写出调用程序。
6、利用存储函数staff_func重做第五题第7小题。
参考答案
一、选择题
1.B
2.C
3.B
4.B
5.B
6.D
7.B
8.C
9.A
10.D
11.A
12.D
13.C
14.B
15.B
16.C
17.D
18.B
19.C
20.C
二、填空题
1.方案/模式
2.USER_SOURCE
3.物理结构;逻辑结构;
4.用户进程;服务器进程;后台进程;
5.系统权限;对象权限;
6.GRANT;REVOKE;
7.过程语言PL;结构化查询语言SQL
8.无名块;命名的子程序;
9.表空间;数据文件;
10.同义词;同义词;同义词所代表的对象;同义词
11.FOR;REVERSE
12.游标
13.INTO
14.%ROWCOUNT
15.OPEN;FETCH;CLOSE
16.不
17.系统预定义异常;用户自定义异常
18.IN;OUT;INOUT
19.有没有ORREPLACE子句
20.触发依据;触发事件;触发时间;触发器类型;触发器主体
三、问答题
1.数据库配置助手
2.网络配置助手
3.需求分析;创建系统数据库;系统的安全性管理;创建数据库对象;创建存储过程、函数和触发器等高级对象;编写前台应用程序脚本,并完善DBMS.
4.关系:
一个数据库由多个表空间组成,一个表空间包含一个或多个数据文件。
5.脱机;OFFLINE
6.使用DROPTABLESPACE<表空间名>INCLUDINGCONTENTSANDDATAFILES;命令。
7.角色是一组权限的集合。
关系:
当把角色授予多个用户时,这些用户就具有相同的权限。
当角色的权限改变时,所有这些用户的权限也随之改变。
8.通过角色管理用户的步骤分为3步:
创建角色;给角色分配权限;将角色分配给用户。
9.概要文件的作用:
限制用户对资源的访问,并进行口令管理。
10.不同点:
表用于真正存放数据。
而视图并不存放数据,是虚表。
相同点:
表和视图都能用于数据查询及更新。
11.同义词的好处:
⏹数据库所有者想屏蔽要操作的对象名称。
⏹由于对象名过长不便于记忆和书写,这时可为对象起一个简短的别名。
⏹屏蔽远程服务器中对象的位置信息。
12.一个PL/SQL块由3个部分组成:
声明部分,执行部分和异常处理部分。
其中执行部分是必须的,而声明部分和异常处理部分是可选的。
13.使用游标的步骤:
声明游标,打开游标,从游标中取数据行进行处理,关闭游标。
14.处理用户自定义异常的步骤:
定义异常,触发异常,异常处理。
15.相同点:
存储过程和存储函数都能完成特定的操作。
不同点:
存储函数主要目的是为了返回一个值,存储过程可以使用OUT参数返回一个或多个值,也可以不返回值;存储过程使用语句格式进行调用,而存储函数只能在表达式中进行调用。
16.相同点:
存储过程和触发器都能完成特定的操作。
不同点:
存储过程在程序中被显式调用;而触发器不能被显式调用。
17.USER_SOURCE
18.使用游标技术可以方便地对查询结果集中的多行数据进行逐行处理。
19.OUT
20.先创建无外键关联的父表,再创建子表。
四、根据要求写命令
1.CREATETABLEstaff_bk1ASSELECT*FROMuser12.staffwheressex=’男’;
2.INSERTINTOstaff_bk1SELECT*FROMuser12.staffwheressex=’女’;
3.CREATETABLESPACEtabs11
DATAFILE‘D:
\oracle\product\10.1.0\oradata\ygbx\ygbxfile1.dbf’
SIZE10MREUSEAUTOEXTENDONNEXT128KMAXSIZE100M;
4.CREATEUSERygbx_user1
IDENTIFIEDBYuser1
DEFAULTTABLESPACEtabs11
TEMPORARYTABLESPACEtemp
ACCOUNTUNLOCK
5.分为以下3个步骤:
⏹CREATEROLEygbx_role1;
⏹GRANTSELECT,INSERT,UPDATE,DELETEONuser12.staffTOygbx_role1;
⏹GRANTygbx_role1TOPUBLIC;
6.CREATEPUBLICSYNONYMstaff_synonymFORuser12.staff;
7.c1staff%ROWTYPE;
8.CREATEVIEWview1AS
SELECTsno,sname,ssex,sbirthday,bno,bname
FROMbusiness,staff
WHEREbusiness.bno=staff.bno;
五、请写出以下PL/SQL程序块或子程序的功能或输出结果。
1、执行结果:
子块:
n1=20,n2=20
主块:
n1=10,n2=20
2、使用记录变量查询显示部门号为“10”的部门信息。
3、根据从键盘输入的百分制成绩,判断是否合格。
4、计算并显示10!
。
5、输出结果:
i=5
i=4
i=3
i=2
i=1
1—5的和为:
15
6、通过游标逐行显示staff表中性别为“男”的记录的sno,sname,sbirthday3个字段信息。
7、通过IN和OUT参数,查询并返回指定编号的员工记录。
8、创建行级触发器“staff_trig”,用于对表“staff”进行DML操作之后,显示相应的操作信息。
六、编写程序
1、SETSERVEROUTPUTON
DECLARE
gradeCHAR
(1):
='B';
BEGIN
CASEgrade
WHEN'A'THENDBMS_OUTPUT.PUT_LINE('优秀');
WHEN'B'THENDBMS_OUTPUT.PUT_LINE('良好');
WHEN'C'THENDBMS_OUTPUT.PUT_LINE('中等');
WHEN'D'THENDBMS_OUTPUT.PUT_LINE('及格');
WHEN'E'THENDBMS_OUTPUT.PUT_LINE('不及格');
ELSEDBMS_OUTPUT.PUT_LINE('不存在');
ENDCASE;
END;
2、SETSERVEROUTPUTON
DECLARE
JchNUMBER:
=1;
iNUMBER:
=1;
nint:
=&n;
BEGIN
WHILEi<=nLOOP
jch:
=jch*i;
i:
=i+1;
ENDLOOP;
DBMS_OUTPUT.PUT_LINE('n的阶乘为:
'||jch);
END;
3、SETSERVEROUTPUTON
DECLARE
nNUMBER;
CURSORstaff3_cursor(sexCHAR)ISSELECT*FROMstaffWHEREssex=sex;--声明游标
c1staff3_cursor%rowtype;--定义参考游标结构的记录变量
BEGIN
OPENstaff3_cursor(‘男’);--打开游标
FETCHstaff3_cursorintoc1;--提取游标数据行
WHILEstaff3_cursor%FOUNDLOOP
DBMS_OUTPUT.PUT_LINE(c1.sno||','
||c1.sname||','||c1.sbirthday);
FETCHstaff3_cursorintoc1;
ENDLOOP;
CLOSEstaff3_cursor;--关闭游标
END;
4、SETSERVEROUTPUTON
DECLARE
nNUMBER;
CURSORstaff3_cursorISSELECT*FROMstaffWHEREssex='男';--声明游标
BEGIN
FORc1instaff3_cursorLOOP
DBMS_OUTPUT.PUT_LINE(c1.sno||','
||c1.sname||','||c1.sbirthday);
ENDLOOP;
END;
5、创建存储过程:
CREATEORREPLACEPROCEDURE
swap(p1INOUTNUMBER,p2INOUTNUMBER)
IS
v_tempNUMBER;
BEGIN
v_temp:
=p1;
p1:
=p2;
p2:
=v_temp;
END;
调用存储过程:
SETSERVEROUTON
DECLARE
num1NUMBER:
=&num1;
num2NUMBER:
=&num2;
BEGIN
swap(num1,num2);
DBMS_OUTPUT.PUT_LINE('num1='||num1);
DBMS_OUTPUT.PUT_LINE('num2='||num2);
END;
6、CREATEFUNCTIONstaff1_fun
(c1INCHAR)
RETURNstaff%ROWTYPE
AS
v1_staffstaff%ROWTYPE;
BEGIN
SELECT*INTOv1_staffFROMstaff
WHEREsno=c1;
RETURNv1_staff;
END;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高起专 软件技术 专业 Oracle 数据库 设计 应用 练习 答案 完成