期末考试试题及答案
滑铁卢大学精算-以牵挂为题的作文
大型数据库期末复习提示
一.题型: 1.选择40分
2.填空20分
3. 程序填空20分 4. 读程序10分 5.程序设计10分
二.试题框架
题型1,2来源为全书16章的内容,重点可以复习每章章后练习。
题型4,5 来自触发器,事务,存储过程几章内容,题目难度与书中相仿
1、以下( )内存区不属于SGA。
A.PGA B.日志缓冲区
C.数据缓冲区 D.共享池
2、( )模式存储数据库中数据字典的表和视图。
A.DBA B.SCOTT C.SYSTEM D.SYS
3、在Oracle中创建用户时,若未提及DEFAULT
TABLESPACE关键字,则Oracle就将( )
表空间分配给用户作为默认表空间。
A.HR B.SCOTT C.SYSTEM D.SYS
4、(
)服务监听并按受来自客户端应用程序的连接请求。
A.OracleHOME_NAMETNSListener
B.OracleServiceSID
C.OracleHOME_NAMEAgent
D.OracleHOME_NAMEHTTPServer
5、(
)函数通常用来计算累计排名、移动平均数和报表聚合等。
A.汇总 B.分析
C.分组 D.单行
6、( )SQL语句将为计算列SAL*12生成别名Annual
Salary
A.SELECT ename,sal*12 ‘Annual Salary’
FROM emp;
B.SELECT ename,sal*12 “Annual
Salary” FROM emp;
C.SELECT ename,sal*12 AS
Annual Salary FROM emp;
D.SELECT ename,sal*12
AS INITCAP(“Annual Salary”) FROM emp;
7、锁用于提供(
)。
A.改进的性能
B.数据的完整性和一致性
C.可用性和易于维护
D.用户安全
8、(
)锁用于锁定表,允许其他用户查询表中的行和锁定表,但不允许插入、更新和删除
行。
A.行共享 B.行排他 C.共享 D.排他
9、带有(
)子句的SELECT语句可以在表的一行或多行上放置排他锁。
A.FOR INSERT
B.FOR UPDATE
C.FOR DELETE D.FOR REFRESH
10、使用( )命令可以在已分区表的第一个分区之前添加新分区。
A.添加分区
B.截断分区
C.拆分分区 D.不能在第一个分区前添加分区
11、( )分区允许用户明确地控制无序行到分区的映射。
A.散列 B.范围
C.列表 D.复合
12、可以使用( )伪列来访问序列。
A.CURRVAL和NEXTVAL B.NEXTVAL和PREVAL
C.CACHE和NOCACHE D.MAXVALUE和MINVALUE
13、带有错误的视图可使用( )选项来创建。
A.FORCE
B.WITH
CHECK OPTION
C.CREATE VIEW WITH ERROR
D.CREATE ERROR VIEW
14、在联接视图中,当(
)时,该基表被称为键保留表。
A.基表的主键不是结果集的主键
B.基表的主键是结果集的主键
C.基表的主键是结果集的外键
D.基表的主键不是结果集的外键
15、在列的取值重复率比较高的列上,适合创建(
)索引。
A.标准 B.唯一 C.分区 D.位图
16、要以自身的模式创建私有同义词,用户必须拥有( )系统权限
A.CREATE
PRIVATE SYNONYM
B.CREATE PUBLIC SYNONYM
C.CREATE SYNONYM
D.CREATE ANY SYNONYM
17、PLSQL块中不能直接使用的SQL命令是( )。
A.SELECT
B.INSERT
C.UPDATE D.DROP
18、以零作除数时会引发( )异常。
A.VALUE_ERROR
B.ZERO_DIVIDE
C.STORAGE_ERROR
D.SELF_IS_NULL
19、要更新游标结果集中的当前行,应使用( )子句。
A.WHERE CURRENT OF B.FOR UPDATE
C.FOR
DELETE D.FOR MODIFY
20、用于处理得到单行查询结果的游标为( )。
A.循环游标
B.隐式游标
C.REF游标 D.显式游标
21、公用的子程序和常量在(
)中声明。
A.过程 B.游标
C.包规范 D.包主体
22、数据字典视图( )包含存储过程的代码文本
A.USER_OBJECTS
B.USER_TEXT
C.USER_SOURCE D.USER_DESC
23、以下不属于命名的PLSQL块的是( )。
A.程序包 B.过程
C.游标 D.函数
24、(
)包用于显示PLSQL块和存储过程中的调试信息。
A.DBMS_OUTPUT
B.DBMS_STANDARD
C.DBMS_INPUT
D.DBMS_SESSION
25、Oracle的内置程序包由(
)用户所有。
A.SYS B.SYSTEM
C.SCOTT
D.PUBLIC
26、( )触发器允许触发操作中的语句访问行的列值。
A.行级
B.语句级
C.模式 D.数据库级
27、在非归档日志方式下操作的数据库禁用了( )。
A.归档日志
B.联机日志
C.日志写入程序
D.日志文件
28、以下哪种备份方式需要在完全关闭数据库进行( )。
A.无归档日志模式下的数据库备份
B.归档日志模式下的数据库备份
C.使用导出实用程序进行逻辑备份
D.以上都不对
29、(
)方式的导出会从指定的表中导出所有数据。
A.分区 B.表
C.全部数据库 D.表空间
30、( )参数用于确定是否要导入整个导出文件。
A.CONSTRAINTS B.TABLES
C.FULL
D.FILE
二、填空题(每空2分,共40分)
1、假设已在某远程客户端完成网络服务
名配置,服务名为aptech,请写出用户MARTIN(用
户口令martinpass)连接到服
务器的命令:
____Connect martinmartinpass@aptech___;
2、SYS用户以管理员身份登录后,要授予用户MARTIN可以对SCOTT用户的EMP表进行查询的权限,请写出授权命令:(假设MARTIN用户已存在)
_____Grant
select on to martin_______________;
3、
创建表employee的副本,但不包含表中的记录:
CREATE TABLE
employee_copy AS_______Select * from employee
where 1=2_____;
4、查询itemfile表中itemrate列的信息,要求将
数值转换为字符串,并使用当前货币符号
作为前缀:
SELECT
___To_char__(itemrate,'C99999') FROM itemfile;
5、查itemfile表中itemdesc、re_level列的信息,要求re_level为NUL
L时显示为0
SELECT itemdesc, __NVL_(re_level,0)
FROM itemfile;
6、完成以下PLSQL块,功能是:显示2 到50的25个偶数。
BEGIN
FOR__even_number___ IN __1..25_
LOOP
DBMS__LINE(even_number*2);
END LOOP
END;
7、 完成以下PLSQL块,功能是:接受职员编号
并检索职员姓名。将职员姓名存储在变量
empname中,如果代码引发VALUE_ERROR异常
,则向用户显示错误消息。
DELCARE
empname %TYPE;;
eno %TYPE;
BEGIN
eno:=’&employee_number’;
___SELECT ename
INTO empname FROM employee WHERE empno=eno;___;
DBMS__LINE(‘职员姓名:’||empname);
______[9]______
WHEN VALUE_ERROR THEN
DBMS__LINE(‘要存储在变量中的值过大’)
END;
8、完成以下PLSQL块,功能是:使用游标,显示所有单价低于250元的玩具的单价。
DECLARE
my_toy_price ce%TYPE;
CURSOR toy_cur IS
SELECT toyprice FROM
toys
WHERE toyprice<250;
BEGIN
________[10]_______
LOOP
_______________[11]_____________
EXIT WHEN
toy_cur%NOTFOUND;
DBMS__LINE
(toy_cur%ROWCOUNT || '. 玩具单价:' ||
my_toy_price);
END LOOP;
CLOSE
toy_cur;
END;
9、完成以下PLSQL块,功能是:使用游标显示销售报表。
如果目标销售额(tsales)大
于实际销售额(asales),则显示消息“需提高销售额”。如
果tsales等于asales,则显示
消息“已达到销售额”,否则显示消息“销售业绩出色”
DECLARE
CURSOR sales_cur IS SELECT *
FROM salesdetails;
BEGIN
_____________________[12]______________
IF sales_ > sales_ THEN
DBMS__LINE('产品:'||sales_||' 需提高销售额');
ELSE
IF _____________[13]______________ THEN
DBMS__LINE('产品:'||sales_||'已达到销售额');
ELSE
DBMS__LINE('产品:'
||sales_||'销售业绩出色');
END IF;
END IF;
END LOOP;
END;
10、完成以下PLSQL块,功能是:创建一个交换两数的过程。
CREATE OR
REPLACE PROCEDURE
swap(p1 IN OUT NUMBER, p2
____[14]_____ NUMBER) IS
v_temp NUMBER;
BEGIN
v_temp := p1;
p1 := p2;
p2 := v_temp;
END;
11、完成以下PLSQL块,功能是:创建一个函
数dept_name,其功能是接受职员编号后
返回职员所在部门名称。(注:部门名称在dept表
中,而职员信息在emp表中,职员所在
部门号的列名为deptno)
CREATE OR
REPLACE FUNCTION dept_name (emp_no NUMBER)
RETURN VARCHAR2 AS
dept_no NUMBER(2);
result %TYPE;
BEGIN
________
___________[15]___________________________________
SELECT dname INTO result FROM dept
WHERE deptno = dept_no;
________[16]__________;
EXCEPTION
WHEN
OTHERS THEN
RETURN NULL;
END;
12、要
执行pack_me包中的order_proc过程(有一个输入参数),假设参数值为’002’,可
以输入以下命令:
EXECUTE
___________[17]__________________
13、完成以下PLSQL
块的功能是:创建一个触发器biu_job_emp,无论用户插入记录,
还是修改EMP表的job
列,都将用户指定的job列的值转换成大写。
CREATE OR REPLACE
TRIGGER biu_job_emp
__BEFORE INSERT OR UPDATE
OF job ON
emp_______________[18]________________
________FOR EACH ROW____[19]_______
BEGIN
:
:=_____UPPER(:)_[20]_____;
END;
答案
1.A
2.D
3.C
4.A
5.B
6.B
7.B
8.C
9.B
10.C
11.C
12.C
13.A
14.B
15.D
16.C
17.D
18.B
19.A
20.B
21.C
22.C
23.C
24.A
25.A
26.A
27.A
28.A
29.B
30.C
二、填空题(每空2分,共40分)
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
Connect
martinmartinpass@aptech
Grant select on to
martin
Select * from employee where 1=2
To_char
NVL
even_number
1..25
SELECT ename INTO empname FROM employee WHERE
empno=eno;
EXCEPTION
[10] OPEN toy_cur
[11] FETCH toy_cur INTO my_toy_price;
[12]
FOR sales_rec IN sales_cur LOOP
[13] sales_ =
sales_
[14] IN OUT
[15] SELECT deptno INTO
dept_no FROM emp WHERE empno=emp_no;
[16]
RETURN result;
[17] pack__proc(‘002’)
[18]
BEFORE INSERT OR UPDATE OF job ON emp
[19] FOR
EACH ROW
[20] UPPER(:)
大型数据库期末复习提示
一.题型: 1.选择40分
2.填空20分
3. 程序填空20分 4. 读程序10分 5.程序设计10分
二.试题框架
题型1,2来源为全书16章的内容,重点可以复习每章章后练习。
题型4,5 来自触发器,事务,存储过程几章内容,题目难度与书中相仿
1、以下( )内存区不属于SGA。
A.PGA B.日志缓冲区
C.数据缓冲区 D.共享池
2、( )模式存储数据库中数据字典的表和视图。
A.DBA B.SCOTT C.SYSTEM D.SYS
3、在Oracle中创建用户时,若未提及DEFAULT
TABLESPACE关键字,则Oracle就将( )
表空间分配给用户作为默认表空间。
A.HR B.SCOTT C.SYSTEM D.SYS
4、(
)服务监听并按受来自客户端应用程序的连接请求。
A.OracleHOME_NAMETNSListener
B.OracleServiceSID
C.OracleHOME_NAMEAgent
D.OracleHOME_NAMEHTTPServer
5、(
)函数通常用来计算累计排名、移动平均数和报表聚合等。
A.汇总 B.分析
C.分组 D.单行
6、( )SQL语句将为计算列SAL*12生成别名Annual
Salary
A.SELECT ename,sal*12 ‘Annual Salary’
FROM emp;
B.SELECT ename,sal*12 “Annual
Salary” FROM emp;
C.SELECT ename,sal*12 AS
Annual Salary FROM emp;
D.SELECT ename,sal*12
AS INITCAP(“Annual Salary”) FROM emp;
7、锁用于提供(
)。
A.改进的性能
B.数据的完整性和一致性
C.可用性和易于维护
D.用户安全
8、(
)锁用于锁定表,允许其他用户查询表中的行和锁定表,但不允许插入、更新和删除
行。
A.行共享 B.行排他 C.共享 D.排他
9、带有(
)子句的SELECT语句可以在表的一行或多行上放置排他锁。
A.FOR INSERT
B.FOR UPDATE
C.FOR DELETE D.FOR REFRESH
10、使用( )命令可以在已分区表的第一个分区之前添加新分区。
A.添加分区
B.截断分区
C.拆分分区 D.不能在第一个分区前添加分区
11、( )分区允许用户明确地控制无序行到分区的映射。
A.散列 B.范围
C.列表 D.复合
12、可以使用( )伪列来访问序列。
A.CURRVAL和NEXTVAL B.NEXTVAL和PREVAL
C.CACHE和NOCACHE D.MAXVALUE和MINVALUE
13、带有错误的视图可使用( )选项来创建。
A.FORCE
B.WITH
CHECK OPTION
C.CREATE VIEW WITH ERROR
D.CREATE ERROR VIEW
14、在联接视图中,当(
)时,该基表被称为键保留表。
A.基表的主键不是结果集的主键
B.基表的主键是结果集的主键
C.基表的主键是结果集的外键
D.基表的主键不是结果集的外键
15、在列的取值重复率比较高的列上,适合创建(
)索引。
A.标准 B.唯一 C.分区 D.位图
16、要以自身的模式创建私有同义词,用户必须拥有( )系统权限
A.CREATE
PRIVATE SYNONYM
B.CREATE PUBLIC SYNONYM
C.CREATE SYNONYM
D.CREATE ANY SYNONYM
17、PLSQL块中不能直接使用的SQL命令是( )。
A.SELECT
B.INSERT
C.UPDATE D.DROP
18、以零作除数时会引发( )异常。
A.VALUE_ERROR
B.ZERO_DIVIDE
C.STORAGE_ERROR
D.SELF_IS_NULL
19、要更新游标结果集中的当前行,应使用( )子句。
A.WHERE CURRENT OF B.FOR UPDATE
C.FOR
DELETE D.FOR MODIFY
20、用于处理得到单行查询结果的游标为( )。
A.循环游标
B.隐式游标
C.REF游标 D.显式游标
21、公用的子程序和常量在(
)中声明。
A.过程 B.游标
C.包规范 D.包主体
22、数据字典视图( )包含存储过程的代码文本
A.USER_OBJECTS
B.USER_TEXT
C.USER_SOURCE D.USER_DESC
23、以下不属于命名的PLSQL块的是( )。
A.程序包 B.过程
C.游标 D.函数
24、(
)包用于显示PLSQL块和存储过程中的调试信息。
A.DBMS_OUTPUT
B.DBMS_STANDARD
C.DBMS_INPUT
D.DBMS_SESSION
25、Oracle的内置程序包由(
)用户所有。
A.SYS B.SYSTEM
C.SCOTT
D.PUBLIC
26、( )触发器允许触发操作中的语句访问行的列值。
A.行级
B.语句级
C.模式 D.数据库级
27、在非归档日志方式下操作的数据库禁用了( )。
A.归档日志
B.联机日志
C.日志写入程序
D.日志文件
28、以下哪种备份方式需要在完全关闭数据库进行( )。
A.无归档日志模式下的数据库备份
B.归档日志模式下的数据库备份
C.使用导出实用程序进行逻辑备份
D.以上都不对
29、(
)方式的导出会从指定的表中导出所有数据。
A.分区 B.表
C.全部数据库 D.表空间
30、( )参数用于确定是否要导入整个导出文件。
A.CONSTRAINTS B.TABLES
C.FULL
D.FILE
二、填空题(每空2分,共40分)
1、假设已在某远程客户端完成网络服务
名配置,服务名为aptech,请写出用户MARTIN(用
户口令martinpass)连接到服
务器的命令:
____Connect martinmartinpass@aptech___;
2、SYS用户以管理员身份登录后,要授予用户MARTIN可以对SCOTT用户的EMP表进行查询的权限,请写出授权命令:(假设MARTIN用户已存在)
_____Grant
select on to martin_______________;
3、
创建表employee的副本,但不包含表中的记录:
CREATE TABLE
employee_copy AS_______Select * from employee
where 1=2_____;
4、查询itemfile表中itemrate列的信息,要求将
数值转换为字符串,并使用当前货币符号
作为前缀:
SELECT
___To_char__(itemrate,'C99999') FROM itemfile;
5、查itemfile表中itemdesc、re_level列的信息,要求re_level为NUL
L时显示为0
SELECT itemdesc, __NVL_(re_level,0)
FROM itemfile;
6、完成以下PLSQL块,功能是:显示2 到50的25个偶数。
BEGIN
FOR__even_number___ IN __1..25_
LOOP
DBMS__LINE(even_number*2);
END LOOP
END;
7、 完成以下PLSQL块,功能是:接受职员编号
并检索职员姓名。将职员姓名存储在变量
empname中,如果代码引发VALUE_ERROR异常
,则向用户显示错误消息。
DELCARE
empname %TYPE;;
eno %TYPE;
BEGIN
eno:=’&employee_number’;
___SELECT ename
INTO empname FROM employee WHERE empno=eno;___;
DBMS__LINE(‘职员姓名:’||empname);
______[9]______
WHEN VALUE_ERROR THEN
DBMS__LINE(‘要存储在变量中的值过大’)
END;
8、完成以下PLSQL块,功能是:使用游标,显示所有单价低于250元的玩具的单价。
DECLARE
my_toy_price ce%TYPE;
CURSOR toy_cur IS
SELECT toyprice FROM
toys
WHERE toyprice<250;
BEGIN
________[10]_______
LOOP
_______________[11]_____________
EXIT WHEN
toy_cur%NOTFOUND;
DBMS__LINE
(toy_cur%ROWCOUNT || '. 玩具单价:' ||
my_toy_price);
END LOOP;
CLOSE
toy_cur;
END;
9、完成以下PLSQL块,功能是:使用游标显示销售报表。
如果目标销售额(tsales)大
于实际销售额(asales),则显示消息“需提高销售额”。如
果tsales等于asales,则显示
消息“已达到销售额”,否则显示消息“销售业绩出色”
DECLARE
CURSOR sales_cur IS SELECT *
FROM salesdetails;
BEGIN
_____________________[12]______________
IF sales_ > sales_ THEN
DBMS__LINE('产品:'||sales_||' 需提高销售额');
ELSE
IF _____________[13]______________ THEN
DBMS__LINE('产品:'||sales_||'已达到销售额');
ELSE
DBMS__LINE('产品:'
||sales_||'销售业绩出色');
END IF;
END IF;
END LOOP;
END;
10、完成以下PLSQL块,功能是:创建一个交换两数的过程。
CREATE OR
REPLACE PROCEDURE
swap(p1 IN OUT NUMBER, p2
____[14]_____ NUMBER) IS
v_temp NUMBER;
BEGIN
v_temp := p1;
p1 := p2;
p2 := v_temp;
END;
11、完成以下PLSQL块,功能是:创建一个函
数dept_name,其功能是接受职员编号后
返回职员所在部门名称。(注:部门名称在dept表
中,而职员信息在emp表中,职员所在
部门号的列名为deptno)
CREATE OR
REPLACE FUNCTION dept_name (emp_no NUMBER)
RETURN VARCHAR2 AS
dept_no NUMBER(2);
result %TYPE;
BEGIN
________
___________[15]___________________________________
SELECT dname INTO result FROM dept
WHERE deptno = dept_no;
________[16]__________;
EXCEPTION
WHEN
OTHERS THEN
RETURN NULL;
END;
12、要
执行pack_me包中的order_proc过程(有一个输入参数),假设参数值为’002’,可
以输入以下命令:
EXECUTE
___________[17]__________________
13、完成以下PLSQL
块的功能是:创建一个触发器biu_job_emp,无论用户插入记录,
还是修改EMP表的job
列,都将用户指定的job列的值转换成大写。
CREATE OR REPLACE
TRIGGER biu_job_emp
__BEFORE INSERT OR UPDATE
OF job ON
emp_______________[18]________________
________FOR EACH ROW____[19]_______
BEGIN
:
:=_____UPPER(:)_[20]_____;
END;
答案
1.A
2.D
3.C
4.A
5.B
6.B
7.B
8.C
9.B
10.C
11.C
12.C
13.A
14.B
15.D
16.C
17.D
18.B
19.A
20.B
21.C
22.C
23.C
24.A
25.A
26.A
27.A
28.A
29.B
30.C
二、填空题(每空2分,共40分)
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
Connect
martinmartinpass@aptech
Grant select on to
martin
Select * from employee where 1=2
To_char
NVL
even_number
1..25
SELECT ename INTO empname FROM employee WHERE
empno=eno;
EXCEPTION
[10] OPEN toy_cur
[11] FETCH toy_cur INTO my_toy_price;
[12]
FOR sales_rec IN sales_cur LOOP
[13] sales_ =
sales_
[14] IN OUT
[15] SELECT deptno INTO
dept_no FROM emp WHERE empno=emp_no;
[16]
RETURN result;
[17] pack__proc(‘002’)
[18]
BEFORE INSERT OR UPDATE OF job ON emp
[19] FOR
EACH ROW
[20] UPPER(:)