-
ORACLE
综合测试
一:选择题
1.
你判断下面语句,有什么作用
?
(
选择
1
项
)
GRANT update ON inventory
TO joe WITH GRANT OPTION;
A.
一个系统权限被授予用户
JOE
B.
一个对象权限被授予用户
JOE
C.
用户
JOE
被授予在这个对象上的所有
权限
D.
一个系统权限和一个对象权限被授予用户
JOE
2.
表
(
PERSONNEL
)包含以下列:
(
选择
1
项
)
ID NUMBER(9)
LAST_NAME VARCHAR2(25)
FIRST_NAME VARCHAR2(25)
MANAGER_ID NUMBER(9)
假设:部门经理是一名职员,判断下面两个语句执行结果有何不同:
SELECT
_name,
_name,
_name,
_name FROM personnel p, personnel m
WHERE
= r_id;
SELECT
_name,
_name,
_name,
_name
FROM
personnel
p,
personnel
m
WHERE
r_id =
A.
其中一个语句不能执行
B.
其中一个语句不是自连接
C.
结果相同,显示顺序不同
D.
结果不同,显示相同
3.
哪
一
子
句
可
实
p>
现
SELECT
语
句
查
询
单
价
小
于
5.0
0
的
ID_NUMBER ? (
选择
1
项
)<
/p>
A.
WHERE price < 5.00
B.
HAVING price <
5.00
C.
ORDER BY price < 5.00
D.
GROUP BY price
< 5.00
4.
判断下面句子:
(
选择
1
项
)
SELECT
_number
,
_number
FROM
inventory
i,
manufacturer m
WHERE cturer_id = _number ORDER BY 1;
哪一子句可以防止表
INVENTO
RY
和表
MANUFACTURER
发
生完
整外部联接
?
A.
ORDER BY 1;
B.
SELECT _number
, _number
FROM inventory I,
manufacturer m
C.
WHERE
cturer_id = _number
D
.以上都不对
5.
判断这
PL/SQL
代码块:
(
选择
1
项
)
BEGIN
FOR i IN 1..6 LOOP
IF i = 2 OR i = 3 THEN
null;
ELSE
INSERT INTO example(one)
VALUES (i);
END IF;
ROLLBACK;
END
LOOP;
COMMIT;
END;
有多少行被插入到表
EXAMPLE
?
A.
0
B.
1
C.
2
D.
3
6.
你关闭表
INVENTORY
上的
p>
ID
列上的主键约束,且修改表
INVEN
TORY
上的所有值后,你需要激活约束并校验列值是否违反
约束。
如果
ID
值不符合约束,
p>
错误信息将返回,
判断下面命令:
(
选
择
1
项
)
ALTER
TABLE
inventory
ENABLE
CONSTRAINT
inventory_id_pk;
哪种说法正确
?
A.
将得到想要的结果
.
B.
语句执行,但不能激活约束
.
C.
语句执行,但不能校验
ID
p>
是否违反约束
.
C.
将返回语法错误
.
7.
表
CLASSES
和
表
SCHEDULE
结构如下
:
CLASSES
:
ID NUMBER(9)
CLASS_NAME VARCHAR2(20)
TEACHER_ID NUMBER(9)
SCHEDULE
:
CLASS_TIME DATE
CLASS_ID NUMBER(9)
< br>你建一个视图显示每一课的课名、课时,并按教师
ID
排
序,判断下
面语句将返回何种结果?
(
选择
1
项
)
CREATE VIEW class_schedule AS
SELECT
_name,
_time
FROM
classes
c,
schedule s WHERE = _id;
A.
语句创建视图
CLASS_SCHEDULE
且可产生预期结果
.
B.
语句创建视图
CLASS_SCHEDULE
但不能产生预期结果
.
C.
语法错误,因为视图不可基于连接查询
.
D.
语法错,因为语句未包含
ORDER
BY
子句
.
8.
判
断是否同时满足两个条件,
应该用下面哪个操作符
?
(
选择
1
项
)
A.
OR
B.
NOT
C.
AND
D. None
9.
哪一个算术运算将返回一个数值
?
(
选择
1
项
)
A.
'01-FEB-1998'
+ 25
B.
'03-DEC-1997' - 30
C.
'07-JUL-1997'
+ (480/24)
D.
TO_DATE('01-JAN-1998') - TO_DATE('01-DEC-1996')
10.
哪句可以实现用户
Marilyn
的表
INVENTORY
不用指定其属
主,直接供所有用户引用
?
(
选择
1
项
)
A.
CREATE SYNONYM
inventory FOR inventory;
B.
CREATE PUBLIC
SYNONYM inventory FOR marilyn;
C.
CREATE
PUBLIC
SYNONYM
inventory
FOR
ory;
D.
CREATE
PUBLIC
inventory
SYNONYM
FOR
ory;
11.
在一个
PL/SQL IF
-THEN
语句中
,
什么值将引起条件语句执
行
?
(
选择
1
项
)
A.
NULL
B.
TRUE
C.
FALSE
D.
以上都不对
12.
哪句可以实现显示
id
和
description
,条件满足订单时间在
January 1, 1997
以前的,且单价小于
1.00
或者大于
5.00
的,
结果用订单时间降序排列。
p>
(
选择
1
项
)
A.
SELECT id_number
,
description FROM inventory
WHERE
price
IN
(1.00,
5.00)
OR
order_date
<
'01-JAN-97'
ORDER BY order_date DESC;
B.
SELECT
id_number
, description FROM inventory
WHERE price BETWEEN 1.00
AND 5.00 OR order_date <
'01-JAN-1997'
ORDER BY order_date;
C.
SELECT id_number
,
description FROM inventory
WHERE price < 1.00 OR price > 5.00 AND
order_date <
'01 -Jan-97'
ORDER BY order_date ASC;
D.
SELECT
id_number
, description FROM inventory
WHERE (price <1.00 OR price
> 5.00) AND order_date <
'01-JAN-1997'
ORDER BY order_date DESC;
13.
哪一个命令允许你直接修改一个已存在的视图
?
(
选择
1
项
)
A.
ALTER
B.
CREATE
C.
MODIFY
D.
CREATE OR REPLACE
14.
哪一语句可实现增加表
employee
的列
< br>
NAME
的长度到
25
?
(
选择
1
项
)
A.
ALTER TABLE
employee MODIFY name VARCHAR2(25);
B.
ALTER TABLE
employee RENAME name VARCHAR2(25);
C.
ALTER
employee
TABLE
MODIFY
COLUMN
name
VARCHAR2(25);
D.
ALTER
employee
TABLE
MODIFY
COLUMN
(name
VARCHAR2(25));
15
、游标的哪一种属性指示
fetch
语句是否从活动集中返回行,如未
能返回行,则此属性的值为
false
?
(
选择
1
项
)
A)
%FOUND
B)
%NOTFOUND
C)
%ROWCOUNT
D)
%ISOPEN
16.
判断下面句子,将返回什么值?
(<
/p>
选择
1
项
)
SELECT id_number
,
description, price FROM inventory
WHERE
manufacturer_id
IN
(SELECT
manufacturer_id
FROM
inventory WHERE price > 8.00 OR quantity > 1000);
A.
返回
单价大于
8.00
且数量大于
1000
的存货的
货号、种类、单
价信息
B.
返回
单价大于
8.00
或者数量大于
100
0
的存货的
货号、种类、
单价信息
.
C.
返回
单价大于
8.00
或者数量大于
100
0
且有制造商号的存货的
货号、种类、单价信息
.
D.
p>
返回单价大于
8.00
或者数量大于
1000
的制造商的所有存货的
货号、种类、单价信息
.
17.
判断
IF
语句
:
IF v_num > 1 THEN
v_example := 1;
ELSIF v_num > 5 THEN
v_example := 2;
ELSIF v_num < 10 THEN
v_example := 3;
ELSIF v_num < 29 THEN
v_example := 4;
ELSE v_example := 5;
END IF;
如果
V_NUM
是
6,
什么值将被赋值给
V_EXAMPLE?
(
选择
1
项
)
A.
1
B.
2
C.
3
D.
4
18.
哪一个是
SQL*Plus
命令
?
(
选择
1
项
)
A.
UPDATE
B.
PROMPT
C.
SELECT
D.
ALTER TABLE
19
、下列哪个集合操作符返回两个查询都有的行。
< br>(
选择
1
项
)
A)
Union
B)
Union
all
C)
Union
only
D)
Intersect
20.
判断下面不完整的
loop
语句
:
LOOP
INSERT INTO inventory
(id_number
, description)
VALUES (v_id_number
,
v_description);
v_counter
:= v_counter + 1;
哪条命令应被加入,为了有条件的停止
loop
执行
?
(
选择
1
项
)
A.
END
B.
EXIT
C.
END LOOP
D.
EXIT WHEN
21.
在
PL/SQL
块的哪部分可以对初始变量赋予新值
?
(
选择
项
)
A.
结尾部分
B.
开头部分
C.
执行部分
D.
声明部分
1
23.
数据字典视图
USER_TABLES
和
ALL_TABLES
有什么不同
?
(
选择
1
项<
/p>
)
A.
ALL_TABLES
只显示用户拥有的表
.
B.
USER_TABLES
只显示用户拥有的表
.
C.
ALL_TABLES
只显示用户拥有查询权限的表
.
D.
USER_TABLES
显示用户拥有查询权限的所有表
.
24.
哪一句可列出表
PARTS_VU
的结构
?
(
选择
1
项
)
A.
DESCRIBE
parts_vu
B.
DESCRIBE user_views
C.
SELECT
*
FROM
user_views
WHERE
lower(view)
=
parts_vu;
D.
SELECT * FROM
user_objects WHERE lower(user_view)
=
parts_vu;
25
、在执行循环之前迭代次数是已知的,则最好使用下列的哪种循
环?<
/p>
(
选择
1
项
p>
)
A)
while
B)
do
C)
loop
D)
for
26.
考虑下列声明,那些是不合法的:
(
选择
3
项)
27.
EMPLOYEES
表如下:
LAST_NAME
DEPARTMENT_ID
SALARY
Getz
10
3000
Davis
20
1500
King
20
2200
Davis
30
5000
?
请根据表判断以下哪些
SQL
语句正确:
(选择
1
项)
A.
SELECT * FROM employees
WHERE
salary
>
(SELECT
MIN(salary)
FROM
employees
GROUP
BY
department_id);
B.
SELECT * FROM employees
WHERE
salary
=
(SELECT
AVG(salary)
FROM
employees
GROUP
BY
department_id);
C.
SELECT DISTINCT department_id FROM
employees
WHERE salary > ANY (SELECT
AVG(salary) FROM employees
A.
DECLARE v_name, v_dept
VARCHAR2(14);
B.
DECLARE v_test NUMBER(5);
C.
DECLARE V_MAXSALARY
NUMBER(7, 2) = 5000;
D.
DECLARE V_JOINDATE BOOLEAN := SYSDATE;
GROUP BY department_id);
D.
SELECT department_id FROM
employees
WHERE salary > ALL(SELECT
AVG(salary) FROM employees
GROUP BY
AVG(salary));
28.
EMPLOYEES
表结构如下:
EMPLOYEE_ID NUMBER
NOT NULL,
PRIMARY KEY
LAST_NAME
VARCHAR2(30)
FIRST_NAME
VARCHAR2(30)
JOB_ID
NUMBER
SAL
NUMBER
MGR_ID
字段的数
据类型为
NUMBER
,参照
EMPL
OYEE_ID
列和
DEPARTMENT_ID
列
(
NUMBER
)
。
现在需要在
FIRST_NAME
和
LAST_NMAE
字段上建立名为
NAME_IDX
的索引,
下列哪个
SQL
语句能执行这项
任务:
(选择
1
项)
A.
CREATE INDEX NAME_IDX(first_name,
last_name);
B.
CREATE INDEX NAME_IDX(first_name AND
last_name);
C.
CREATE
INDEX
NAME_IDX
ON
employees(first_name,
last_name);
D.
CREATE
INDEX
NAME_IDX
FOR
employees(first_name,
last_name);
29.
Oracle
会为下列哪些约束自动建立索引:
(选择
1
p>
项)
30.
定义游标如下:
DECLARE
CURSOR query_cursor(v_salary) IS
SELECT last_name, salary, dept_no
FROM employee
WHERE
salary>v_salary;
这条语句为什么会错误?(选择
< br>1
项)
A.
在
游标定义中不允许出现
where
子句
B.
select
语句中缺少
into
子句
C.
参数未指定为标量数据类型
A.
Check
B.
Unique
C.
Primary key
D.
Foreign key
D.
定义
cursor
的语法写错了
31.
检查下列代码:
CREATE OR
REPLACE TRIGGER update_emp
AFTER UPDATE
ON emp
BEGIN
INSERT INTO
audit_table (who, audited)
VALUES(USER,
SYSDATE);
END;
你对
EMP
表执行了一条
Update
语句
,影响
10
行数据,那么将会
在
AUDIT_TABLE
中增加多少行数据?(选择
< br>1
项)
32.
创建存储过程中,局部变量应放在下列哪个关键字之后:
(选
择
1
项)
33.
定义存储过程如下:
CREATE
OR REPLACE PROCEDURE INSERT TEAM
(V_ID
in
NUMBER,V_CITY
in
VARCHER2
DEFAULT
'AUSTIN'
,
V_NAME
in VARCHER2)
IS
A.
IS
B.
BEGIN
C.
DECLARED
D.
PROCEDURE
A.
1
B.
10
C.
没有
D.
和
EMP
表中已有的数据行数一致
BEGIN
INSERT INTO TEAM (id,
city,name)
VALUES (v_id,v_city,v_name);
COMMIT;
END;
以下哪些
PL/SQL
语句能够正确调用该过程?(选择
2
项)
34.
考察下面的函数:
CREATE
OR REPLACE FUNCTION CALC_PLAYER_AVG
(V_ID IN PLAYER_BAT_STAT.
PLAYER_ID%TYPE)
RETURN NUMBER
IS
V_AVG NUMBER;
BEGIN
SELECT HITS/AT_BATS
INTO V_AVG
FROM
PLAYER_BAT_STAT
WHERE PLAYER_ID=V_ID;
A.
EXECUTE
INSERT_TEAM;
B.
EXECUTE INSERT_TEAM
(V_NAME=.>
C.
EXECUTE INSERT_TEAM
(3,V_CITY=>
D.
EXECUTE INSERT_TEAM (3,
RETURN(V_AVG);
END;
< br>下列哪条语句可以成功调用函数:
(选择
1
项)
A.
SELECT
CALC_PLAYER_AVG(PLAYER_ID)
FROM
PLAYER_BAT_STAT;
36.
检查此包的定义:
CREATE
OR REPLACE PACKAGE COMPILE_THIS
IS
G_VALUE VARCHAR2(100);
PROCEDURE A;
PROCEDURE B;
END COMPILE_THIS;
/
CREATE OR REPLACE PACKAGE BODY
COMPILE_THIS
IS
PROCEDURE A
IS
BEGIN
B.
EXECUTE CALC_PLAYER_AVG(31);
C.
CALC_PLAYER(‘RUTH’);
D.
CALC_PLAYER_AVG(31);
G_VALUE := (‘HELLO WORLD’);
END A;
PROCEDURE B
IS
BEGIN
C;
DBMS_OUTPUT. PUT_LINE (‘PROCEDURE B
CALLING C’);
END B;
PROCEDURE C
IS
BEGIN
B;
DBMS_OUTPUT. PUT_LIN
E
(‘PROCEDURE C CALLING B’);
END;
END COMILE_THIS;
/
在编译包时,以下叙述哪项是正确的:
(选择
1
项)
A.
输出
Procedure B calling
C
B.
输出
Procedure C calling
B
C.
出现编译错误,因为
C
需要前项声明
D.
出现编译错误,因为
B
需要前项声明
37.
存储过程定义如下:
CREATE
OR REPLACE PROCEDURE DELETE_PLAYER
(V_ID IN NUMBER)
IS
BEGIN
DELETE FROM PLAYER
WHERE V_ID=31;
EXCEPTION
WHEN STATS_EXIST_EXCEPTION
THEN DBMS__LINE
('can't
delete this player, child records exist in
PLAYER_BAT_STAT table');
END;
为什么该过程编译出错?(选择
1
项)
38.
下列哪些叙述是正确的:
(选择
2
项
)
A.
函数必须有返回值
B.
过程必须有返回值
A.
在
STATA_EXIST_EXCEPTION
后没有打逗号
B.
STATS_E
XIST_EXCEPTION
没有声明为
NUMBER
类型
C.
STA
TS_EXIST_EXCEPTION
没有声明为
excep
tion
类型
D.
在
EXCEPTION
区只允许使用预定义异常
-
-
-
-
-
-
-
-
-
上一篇:三角函数的基本关系
下一篇:综合教程第五册课文翻译