oracle database 10g 期末考复习资料 - 图文(2)

2019-08-01 23:32

9、oracle数据库系统中,启动数据库的第一步是启动一个数据库实例。(Y)。 10、SGA 是针对某一服务器进程而保留的内存区域,它是不可以共享的。(N)

11、HAVING后面的条件中可以有聚集函数,比如SUM(),AVG()等, WHERE 后面的条件中也可以有聚集函数。(N)

解释:WHERE 后面的条件不可以有聚集函数

12、oracle dba角色具有所有的权限。(N)

13、在连接操作中,如果左表和右表中不满足连接条件的数据都出现在结果中,那么这种连接是全外连接 。(Y) 14、oracle数据库中实例和数据库是一一对应的(非ORACLE并行服务,非集群)。( Y ) 15、pl sql代码块声明区可有可无。( Y )

16、数据库字典视图ALL_***视图只包含当前用户拥有的数据库对象信息。(N) 解释:user_*(当前用户所拥有对象的有关信息), all_*(当前用户可访问对象的信息), dba_*(数据库中所有对象的信息)。

17、因为存储过程不返回值,使用时只能单独调用;而函数却能出现在能放置表达式的任何位置。( Y )

18、上海西北京 可以通过like ?%上海_?查出来。(N) 19、锁用于提供数据的完整性和一致性。( Y )

20、oracle数据库的热备份,数据库必须处于归档模式下。(Y)

四、填空题(每题1分,共20分)

1、Oracle数据库安装后默认的用户有(sys)、(system)等。 2、Oracle的数据备份命令是( exp ),数据恢复命令是(imp )。 3、修改表空间时,使用命令格式的关键字是 (alter) ,更新表记录的关键字是 (update)。 4、客户端连接服务器需要修改(tnsnames.ora),(listener.ora)文件。 5、数据库系统的其结构一般分为三级:用户级、(概念级)、(物理级) 。

6、创建一个简单的用户testUser, 密码为test的语句是(create user testUser identified by test)。

7、提交一个事务使用关键字(commit) 。 8、获得两个集合的交集使用(intersect) 。

9、创建用户时,需要赋予新用户(connect)权限才能使它联上数据库。 10、在oracle体系结构中,包括三类进程,包括用户进程,(服务器进程),(后台进程)。 11、当进行模糊查询是,应使用关键字(like) 和通配符(下划线_)或百分号“%”。 12、使用显示游标主要有四个步骤,声明游标,(打开游标),(读取数据),关闭游标。

五、简答题(每题2分,共12分)

1、删除一张表重复记录(id 是自增唯一,重复记录:其他字段都是一样),有重复的记录只保留一条 Table aa id name age

第 6 页 共 27 页

1 louis 20 2 louis 20 3 jimmy 30 4 louis 20

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

答:delete from aa where id not in(select min(id) from aa group by name,age);

2、解释FUNCTION,PROCEDURE和PACKAGE差别。 答:function和procedure是PL/SQL代码的集合,通常为了实现一个任务。procedure不须要返回任何值,而function将返回一个值。Package是为了实现一个商业功用的一组function和procedure的集合。

3、Oracle中,需要在查询语句中把空值(NULL)输出为0,如何处理? 答:方法一:NVL(column_name,0)

方法二:DECODE(column_name,null,0, column_name)

4、在oracle环境下,需要创建表空间,当数据超过表空间大小时,要对表空间进行扩充,请说出三种扩展方式。 答:添加数据文件 改变数据文件的大小 允许数据文件自动扩展

5、用命令行的方式,创建一个新的ORACLE用户,用户名为AAA,口令为BBB,默认表空间为USERS,临时表空间为 TEMP。 答:

CREATE USER AAA IDENTIFIED BY BBB DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP;

6、如果一个表在2010-08-04 10:30:00 被drop,在有完善的归档和备份的情况下,如何恢复?

手工拷贝回所有备份的数据文件 startup mount;

sql alter database recover automatic until time '2010-08-04:10:30:00'; alter database open resetlogs;

六、编程题(每题4分,共8分)

1、请用一个 sql 语得出结果从 table1,table2 中取出如 table3 所列格式数据 (4分) table1

月份 mon 部门 dep 业绩 yj ------------------------------- 一月份 01 10 一月份 02 10 一月份 03 5 二月份 02 8 二月份 04 9

第 7 页 共 27 页

三月份 03 8

table2

部门 dep 部门名称 dname -------------------------------- 01 国内业务一部 02 国内业务二部 03 国内业务三部 04 国际业务部 05 其他部门

table3 (result)

部门 dep 部门名称 一月份 二月份 三月份 -------------------------------------- 01 国内业务一部 10 0 0 02 国内业务二部 10 8 0 03 国内业务三部 0 5 8 04 国际业务部 0 0 9 05 其他部门

select a.dep,a.dname

sum(case when b.mon='一月份' then b.yj else 0 end) as '一月份', sum(case when b.mon='二月份' then b.yj else 0 end) as '二月份', sum(case when b.mon='三月份' then b.yj else 0 end) as '三月份',

from table2 a left join table1 b on a.dep=b.dep

2、一个订单表order1,有这些字段(orderid int ,ordername varchar2(10),qty number,ordernum number,status varchar2(10)) 写一段pl/sql,使用游标,查询订单表,如果qty(预购数量)等于ordernum(实际订购量),则将status设置为?已处理?,否则设置为?未处理? (4分)

declare

cursor order_cur is select * from order1 for update of status;

my_order_qty order1%rowtype; begin

open order_cur; Loop

fetch order_cur into my_order_qty; exit when order_cur%notfound;

if my_order_qty.ordernum!=my_order_qty.qty then update order1 set status='未处理'

第 8 页 共 27 页

where current of order_cur ; else

update order1 set status='已处理' where current of order_cur; end if ; end loop;

close order_cur; end;

--循环游标 declare

cursor c_rec is select * from order1 for update; begin

open c_rec;

for e in c_rec loop

if e.qty=e.ordernum then

update order1 set status='已处理' where current of c_rec; else

update order1 set status='未处理' where current of c_rec; end if; end loop; close c_rec; end;

选择题 1

数据库由哪几种文件组成? ACD 参数文件 口令文件 数据文件 控制文件 重做日志

进程恢复是由哪个后台进程来完成的? C DBWR LGWR SMON PMON

数据字典信息被存放在哪种文件中? C 数据文件 控制文件

第 9 页 共 27 页

重做日志

当执行SQL语句时,数据字典信息是从SGA的哪部分获得? C 共享池

数据高速缓存 重做日志缓冲区

SGA包括以下哪些部分? AD 数据高速缓存 PGA 共享池

重做日志缓冲区

DEFINE命令可以用于定义哪种变量? B NUMBER CHAR

VARCHAR2 DATE

使用ACCEPT命令所定义的变量可以使用以下哪些标号引用? AB & && :

假定SALES部门有10个雇员,其中有9个雇员的工资为1000,另一个雇员的工资为NULL,那么当使用AVG函数取得该部门的平均工资时,结果应该是多少? B 1000 900 950

以下哪条语句是正确的? C

SELECT deptno,sum(sal) FROIM emp;

SELECT deptno,avg(sal) FROM emp WHERE avg(sal)>2000 GROUP BY deptno; SELECT deptno,avg(sal) FROM emp GROUP BY deptno HAVING avg(sal)>2000;

如果要显示所有部门及其雇员信息,应该使用哪个语句? B

SELECT a.dname,b.ename FROM dept a,emp b WHERE a.deptno=b.deptno;

SELECT a.dname,b.ename FROM dept a,emp b WHERE a.deptno=b.deptno(+); SELECT a.dname,b.ename FROM dept a,emp b WHERE a.deptno(+)=b.deptno;

以下哪个集合操作符不会执行排序操作? B UNION

UNION ALL INTERSECT MINUS

第 10 页 共 27 页


oracle database 10g 期末考复习资料 - 图文(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2014 安全培训教案 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: