数据库管理技术复习题.docx

上传人:b****8 文档编号:27813005 上传时间:2023-07-05 格式:DOCX 页数:15 大小:86.70KB
下载 相关 举报
数据库管理技术复习题.docx_第1页
第1页 / 共15页
数据库管理技术复习题.docx_第2页
第2页 / 共15页
数据库管理技术复习题.docx_第3页
第3页 / 共15页
数据库管理技术复习题.docx_第4页
第4页 / 共15页
数据库管理技术复习题.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

数据库管理技术复习题.docx

《数据库管理技术复习题.docx》由会员分享,可在线阅读,更多相关《数据库管理技术复习题.docx(15页珍藏版)》请在冰豆网上搜索。

数据库管理技术复习题.docx

数据库管理技术复习题

选择题

1.下列选项中,哪一部分不是Oracle实例的组成部分()C

A.系统全局区SGAB.PMON后台进程

C.控制文件D.Mnnn调度进程

2.在全局存储区SGA中,哪部分内存区域是循环使用的()B

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

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

A.SYSTEMB.SYSC.USERD.DEFAULT

4.在Oracle中,一个用户拥有的所有数据库对象统称为()A

A.模式B.表空间C.数据库D.实例

5.下列哪个子句实现对一个结果集进行分组和汇总()D

A.HAVINGB.ORDERBYC.WHERED.GROUPBY

6.如果要设置SQL*Plus每页打印的数量,则可以使用如下的哪个命令()C

A.SETPAGEB.PAGESIZEC.SETPAGESIZED.SIZE

7.下列哪个语句允许检查UPDATE语句所影响的行数()B

A.SQL%FOUNDB.SQL%ROWCOUNT

C.SQL%COUNTDD.SQL%NOTFOUND

8.下列哪个语句可以在SQL*Plus中直接调用一个过程()D

A.RETURNB.CALLC.SETD.EXEC

9.对于下面的函数,哪个语句将成功地调用()A

CREATEORREPLACEFUNCTIONCalc_Sum(Addend_Xnumber,Addend_Ynumber)ReturnnumberAsSumnumber;

BEGINSum:

=Addend_X+Addend_Y;ReturnSum;END;

A.Sum:

=Calc_Sum(23,12)B.EXECUTECalc_Sum(45)

C.EXECUTECalc_Sum(23,12)D.Calc_Sum

10.在下列各选项中,关于序列的描述哪一项是不正确的()D

A.序列是Oracle提供的用于产生一系列唯一数字的数据库对象

B.序列并不占用实际的存储空间

C.使用序列时,需要用到序列的两个伪列NEXTVAL与CURRVAL。

其中,NEXTVAL将返回序列生成的下一个值,而CURRVAL返回序列的当前值

D.在任何时候都可以使用序列的伪列CURRVAL,以返回当前序列值

11.替代触发器可以被附加到哪一类数据库对象上()C

A.表B.序列C.视图D.簇

12.下列哪个语句会终止事务()B

A.SAVEPOINTB.COMMIT

C.ENDTRANSACTIOND.ROLLBACKTOSAVEPOING

13.下列哪一个锁模式不属于Oracle()A

A.死锁B.排他锁C.行级共享锁D.共享锁

14.用户查询下列哪一个数据字典视图,可以查看他向其他用户授予的对象权限()C

A.DBA_SYS_PRIVSB.USER_TAB_PRIVS_MADE

C.USER_TAB_PRIVSD.USER_OBJ_PRIVS

15.若想导出(export)Scott用户的所有对象,该使用哪一种数据库导出(export)模式()B

A.tableB.userC.tablespaceD.fulldatabase

16.在Oracle中,当控制一个显式游标时,下面哪种命令包含INTO子句()A

A.FETCHB.CLOSEC.OPEND.CURSOR

17.在Windows操作系统中,Oracle的()服务是使用iSQL*Plus必须的。

B

A.OracleHOME_NAMETNSListenerB.OracleServiceSID

C.OracleHOME_NAMEAgentD.OracleHOME_NAMEHTTPServer

18.使用哪一条SHUTDOWN语句关闭数据库时,下次打开数据库需要做恢复的操作()C

A.SHUTDOWNTRANSACTIONALB.SHUTDOWNIMMEDIATE

C.SHUTDOWNABORTD.SHUTDOWNNORMAL

19.ORACLE中,用来判断列值是否为空的操作符是()D

A==NULLBNULLISC.ASNULLD.ISNULL

20.根据以下在不同会话与时间点的操作,判断结果是多少()A

session1session2

------------------------------------------------------------------------------

T1selectcount(*)fromt;--显示结果(1000)条

T2deletefromtwhererownum<=100;

T3begin

deletefromtwhererownum<=100;

commit;

end;

T4truncatetablet;

T5selectcount(*)fromt;--这里显示的结果是多少?

A.800B.900 C.1000D.0

21.在Oracle中,一个用户拥有的所有数据库对象统称为()A

A.模式B.表空间C.数据库D.实例

22.在Oracle数据库的逻辑结构中有以下组件:

A表空间B数据块C区D段,这些组件从大到小依次是()B

A.A→B→C→DB.A→D→C→BC.A→C→B→DD.D→A→C→B

23.在Oracle数据库中,()用户模式存储数据字典表和视图对象。

B

A.SYSTEMB.SYSC.SCOTTD.SYSDBA

24.下列哪个语句可以在SQL*Plus中直接调用一个过程()D

A.RETURNB.CALLC.SETD.EXEC

26.在Oracle中,有一个名为seq的序列对象,以下语句能返回序列值但不会引起序列值增加的是()C

A.selectseq.ROWNUMfromdual;B.selectseq.ROWIDfromdual;

C.selectseq.CURRVALfromdual;D.selectseq.NEXTVALfromdual;

28.Oracle提供的(),能够在不同硬件平台上的Oracle数据库之间传递数据。

D

A.归档日志运行模式B.RECOVER命令C.恢复管理器(RMAN)D.Export和Import工具

29.在Oracle中,当控制一个显式游标时,下面哪种命令包含INTO子句()A

A.FETCHB.CLOSEC.OPEND.CURSOR

30.下列哪个子句实现对一个结果集进行分组和汇总()D

A.HAVINGB.ORDERBYC.WHERED.GROUPBY

31.对于下面的函数,哪个语句将成功地调用()A

CREATEORREPLACEFUNCTIONCalc_Sum(Addend_Xnumber,Addend_Ynumber)ReturnnumberAs

Sumnumber;

BEGINSum:

=Addend_X+Addend_Y;

ReturnSum;

END;

A.Sum:

=Calc_Sum(23,12)B.EXECUTECalc_Sum(45)

C.EXECUTECalc_Sum(23,12)D.Calc_Sum

33.有字符串数据”test”分别存放到char(10)和varchar2(10)类型的字段中,其实际存储长度为()C

A.1010B.44C.104D.410

34使用哪一条SHUTDOWN语句关闭数据库时,下次打开数据库需要做恢复的操作()C

A.SHUTDOWNTRANSACTIONALB.SHUTDOWNIMMEDIATE

C.SHUTDOWNABORTD.SHUTDOWNNORMAL

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

C

A.过程B.包规范C.游标D.包主体

18.若需在个人信息表的性别列上创建索引,以下最适合的是()

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

36.在Oracle中,使用HAVING子句也可以进行条件查询,以下选项说法是正确的是()C

A.HAVING子句和WHERE子句相同B.HAVING子句用于行的条件查询

C.HAVING子句用于已分组结果的条件查询D.以上皆非

37.如果服务器进程无法在数据缓冲区中找到空闲块,以添加从数据文件中读出的数据块,则系统会启动如下哪一个进程()D

A.CKPTB.SMONC.LGWRD.DBWR

38.在Oracle中,阅读下列PL/SQL块:

DECLARE

v_lowerNUMBER:

=2;

v_upperNUMBER:

=100;

v_countNUMBER:

=1;

REGIN

FORIINv_lower..v_lowerLOOP

INSERTINTOtest(results)

VALUES(v_count);

V_count:

=v_count+1;

ENDLOOP;

END;请问FORLOOP循环体执行了()次。

A.1B.2C.98D.0E)100

39.查看下面的语句创建了哪一种索引()?

C

CREATEINDEXtest_indexONstudent(stuno,sname)

TABLESPACEusersSTORAGE(INITIAL64k,next32k);

A.全局分区索引B.位图索引C.复合索引D.基于函数的索引

40下列哪一个动作不会激发一个触发器()?

B

A.更新数据B.查询数据C.删除数据D.插入数据

42.下列哪个对象属于模式对象?

()C

A.数据段B.盘区C.表D.表空间

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

C

A.HRB.SCOTTC.SYSTEMD.SYS

44.获得当前系统时间的查询语句是()。

A

A.SysdateB.SelectSysdateC.SelectSysdatefromdualD.以上都可以

45.下列哪一个锁模式不属于Oracle()。

A

A.死锁B.排他锁C.行级共享锁D.共享锁

46.PL/SQL过程和函数的参数模式不包括()。

D

A.inB.outC.inoutD.outin

47.EMP表有14条记录,则语句SELECT‘Aptech’FROMEMP的执行结果是()。

D

A.AptechB.无输出C.14行AptechD.编译出错

49.在Oracle中,当控制一个显式游标时,下面哪种命令包含INTO子句。

A

A.FETCHB.CLOSEC.OPEND.CURSOR

50.ORACLE中,用来判断列值是否为空的操作符是()。

D

A.==NULLB.NULLISC.ASNULLD.ISNULL

51.为了去除结果集中重复的行,可在SELECT语句中使用下列哪个关键字A.ALLB.DISTINCTC.SPOOLD.HAVINGB

52.关于模式的描述下列哪一项不正确()。

C

A.表或索引等模式对象一定属于某一个模式

B.在Oracle数据库中,模式与数据库用户是一一对应的

C.一个表可以属于多个模式D.一个模式可以拥有多个表

1.Oracle数据库系统的物理存储结构主要由3类文件组成,分别为数据文件、______、控制文件。

2.如果定义与组有关的搜索条件,可以把________子句添加到SELECT语中。

3.在SQLPlus命令行下,查看EMP表的结构应使用________命令。

4.自定义异常必须使用________语句引发。

5.如果表中某列的基数比较低,则应该在该列上创建________索引。

6.在用户连接到数据库后,可以查询数据字典____了解用户所具有的系统权限。

7.使下列SQL语句中添加适当的表达式或子句,使语句可以正常运行。

SELECT供应商所在城市,COUNT(供应商编号)

FROM供应商信息GROUPBY________ORDERBY2DESC;

8.假设有一个表TEST,它仅包含一个字段DATA。

现在创建一个触发器,实现将添加的数据变大写。

在下面的空白处填写适当的语句,使之可以正常运行。

Createorreplacetriggertest_trigger

After________on________foreachrow

Begin

:

new.data:

=upper(________);

End;

9.SYS用户以管理员身份登录后,要授予用户Martin可以对用户Scott用户的EMP表进行查询的权限,请写出授权命令________。

(假设Martin用户已存在)

10.查询itemfile表中itemrate列的信息,要求将数值转化为字符串,并使用当前货币符号作为前缀:

Select__TO_CHAR__(itemrate,‘c99999’)fromitemfile;

11.PL/SQL程序块主要包含3个主要部分:

声明部分、可执行部分和_____部分。

12.要执行pack_me包中的order_proc过程(有一个输入参数),假设参数值为’002’,可以输入以下命令:

execute_pack_me.order_proc(‘002’);________

13.__角色__是具有名称的一组相关权限的组合。

14.在多进程Oracle实例系统中,进程分为用户进程_、后台进程和服务器进程。

1.假设当前用户是SYS用户以管理员身份登录,现需创建用户LiuBei,口令是shuguo,请写出相应的命令_________createuserLisaidentifybyshuguo_____;

2.假设现在用户是SYS用户以管理员身份登录,已知用户账号LiuBei被锁定,需为他解除锁定,请写出相应的命___________alteruserLiuBeiaccountunlock;________

3.假设现在用户是SYS用户以管理员身份登录,需授予用户LiuBei对SCOTT用户模式下的EMP表进行查询(SELECT)的权限,grantselectonscott.emptoLiuBei;___

4.假设现在用户是SYS用户以管理员身份登录,在SQLPlus的SQL>_提示符下,希望用户LiuBei用shuguo以普通用户身份登录到系统,___connLisa/shuguo;

5.假设现在LiuBei在SQLPlus下,以普通用户身份登录到系统,需查看scott模式下emp表的结构,请写出相应的语句____descscott.emp;__

四、并发事物题,理解下面过程,完成表中空白

利用回滚段的特性完成银行提款1000元的操作过程,共有两次事务处理操作,

第1次由于误操作将提款金额输入为10000元,然后马上取消操作,第2次成

功完成提款操作,请完成下表。

表-1操作过程

状态

动作

回滚段中数据

动作结束后的帐户余额

内存中的数据

其他用户看到的数据

1

前事务#1

1500

1500

2

更新储蓄,设置余额=余额-10000

1500

(1)____

(2)____

3

回滚

(3)____

1500

4

更新储蓄,设置余额=余额-1000

(4)____

500

1500

5

提交

500

(5)____

-8500150015001500500

五、编程题:

(本题共2小题,共25分)

以下1-3题可能用到的Employee表结构和数据如下图-1:

图-1Employee表结构和数据

1.阅读以下程序,理解其功能,完成空白:

(每个2分,共10分)

以下程序段实现的是从employee表中读取员工姓名(Ename)、部门编号(DeptNO),并使用游标逐行比较,将部门编号为20的员工部门编号和姓名输出.

Declare

(1)_________--定义游标c_emp_cursor

is

selectename,deptnofromemployee;

v_enameemployee.ename%type;

v_deptnoemployee.deptno%type;

begin

(2)_________;--打开游标

loop--遍历游标

fetchc_emp_cursorintov_ename,v_deptno;

exitwhen(3)_________;

if(4)_________then

dbms_output.put_line(v_deptno||''||v_ename);--输出数据

endif;

endloop;

(5)_________;--关闭游标

end;

createorreplacecursorc_emp_cursoropenc_emp_cursor

c_emp_cursor%NOTFOUNDv_deptno=20closec_emp_cursor

2.根据图-1Employee表的结构,完成以下程序的编写:

(10分)

编写一个PL/SQL函数get_sal,接受传入参数部门号(v_emp_no),据此来查询获取某雇员的工资。

请写出程序代码

CREATEORREPLACEFUNCTIONget_sal

(v_emp_noINemployee.empno%TYPE)3分

RETURNNUMBER1分

IS

v_emp_salemployee.sal%TYPE:

=0;2分

BEGIN

SELECTsal

INTOv_emp_sal

FROMemployee

WHEREempno=v_emp_no;

RETURN(v_emp_sal);4分

ENDget_sal;

执行结果测试:

3、请创建一个名称为change_record的触发器,实现当对emp表更新员工工资之后,将更新纪录保存到表salary_change_record中。

(10分)

具体要求如下:

建立日志对薪水的变动情况形成一个追踪,也就是说,如果对某个职员的薪水进行变更就应该将其相应的变更记录全部记下来,将数据记录到表salary_change_record中,salary_change_record结构salary_change_record(empid,old_salary,new_salary,change_date),其中old_salary用来纪录员工原来的工资,new_salary用来纪录更新后的工资,change_date记录更新的系统时间。

请写出程序代码(4分)

Createtablesalary_change_record

(empidchar(4),

Old_salarynumber(7,2),

New_salarynumber(7,2),

Change_datedate))

请写出创建触发器的语句:

(6分)

Createorreplacetriggerchange_record

Afterupdateofsalonemployee

Foreachrow2分

Begin

Insertintosalary_change_record

values(:

new.empno,:

old.sal,:

new.sal,sysdate);

end;4分

1.emp表结构如下图所示,请按要求完成以下程序的编写。

表-2emp表结构

(1)假设部门号(DeptNo)为10的部门为管理部,请建立一个视图V_Mage,其功能是选取Emp表中部门号为10的员工信息。

(6分)

(2)假设现需用到一张表update_logs(op_user,op_date,old_value,new_value),其结构如下所示:

请写出创建表update_logs的语句,要求主键为op_user,字段类型与宽度下表。

(6分)update_logs表结构

名称

类型及长度

Empno

Number(4)

Ename

Varchar2(10)

Job

Varchar2(9)

Sal

number(7,2)

Deptno

Number

(2)

名称

类型及长度

Deptno

Number

(2)

Dname

Varchar2(14)

Loc

Varchar2(13)

1.编写一个数据库触发器del_dept,当任何时候某个部门从"dept"中删除时,该触发器将从"emp"表中删除该部门的所有雇员记录。

写出相应的代码:

 

感谢下载!

 

欢迎您的下载,资料仅供参考

 

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

当前位置:首页 > 经管营销 > 企业管理

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

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