在每小题列出的四个备选项中只有1个或2个是符合题目要求的,多选题已用*标识出来,错选或未选均无分。
1、下面哪条SQL语句会返回结果
A. select 1 from dual where null=null; B. select 1 from dual where null=''; C. select 1 from dual where ''='' D. select 1 from dual where null is null;
2、在创建需要存储客户资料表中的所有列值的记录变量时,将使用什么 A. %TYPE B. %ROWTYPE C. 列列表 D. %ROWCOUNT
3、 下面哪两个任务可以使用TO_CHAR函数?(选择两个选项)
A. 把10 转变为’TEN’ B. 把’10’转变为10 C. 把10 转变为’10’ D. 把’TEN’转变为10
E. 把日期转变为字符表达式 F. 把字符表达式转变为日期 4、你要在一个事务的SQL*Plus 会话中改变一些数据。下列哪个选项通常不表示事务结束? A. 发出update 语句 B. 发出commit 语句 C. 发出rollback 语句 D. 结束会话
5、你要从表中删除了1700 行,要保存数据库中的改变,用下列哪个语句? A. savepoint B. commit
C. rollback D. set transaction
*6、执行下面的SQL 语句:
TRUNCATE TABLE TF_F_CUSTOMER;
有关该语句的正确描述是?(选择两个选项) A. 它释放了表占用的存储空间 B. 它没有释放表占用的存储空间
C. 当执行了这个语句后,可以回退对行的删除操作。 D. 当执行了这个语句后,就不能回退对行的删除操作。 E. 在执行了TRUNCATE语句后,试图对表TF_F_CUSTOMER使用DESCRIBE命令,会显示错误信息。
- 1 -
*7、下面的SQL 语句,创建了一个表TF_B_ORDER: CREATE TABLE TF_B_ORDER (SER_NO NUMBER UNIQUE, ORDER_ID NUMBER,
ORDER_DATE DATE NOT NULL,
STATUS VARCHAR2(10) CHECK (status IN ('CREDIT','CASH')), PROD_ID NUMBER REFERENCES PRODUCTS(PRODUCT_ID), ORD_TOTAL NUMBER,
PRIMARY KEY (order_id,order_date));
当执行上面的SQL语句,自动为哪些列创建了索引?(选择两个选项) A. SER_NO B. ORDER_ID C. STATUS D. PROD_ID
E. ORD_TOTAL F. ORDER_ID与ORDER_DATE的组合
8、UCR_CEN1 发出的SQL 语句如下: CREATE TABLE TD_M_DEPART (deptno NUMBER(2), dname VARCHAR2(14), loc VARCHAR2(13));
GRANT SELECT ON TD_M_DEPART TO UOP_CEN1;
如果UOP_CEN1 需要从UCR_CEN1 的表中查询信息,她应该使用什么命令? A. SELECT *
FROM TD_M_DEPART; B. SELECT *
FROM UCR_CEN1. TD_M_DEPART; C. SELECT *
FROM DBA. UOP_CEN1. TD_M_DEPART; D. SELECT *
FROM ALL_USERS
WHERE USER_NAME=' UOP_CEN1'
AND TABLE NAME=' TD_M_DEPART ';
9、表TD_M_STAFF 中有如下两列: BONUS NUMBER(7,2) DEPT_ID NUMBER(9) 当前有三个部门,每个部门中至少有一名员工的BOUNS的值大于500,但并不是所有的员工都有分红。
执行下面的PL/SQL块: DECLARE
v_bonus td_m_staff.bonus%TYPE:=300; BEGIN
UPDATE td_m_staff
SET bonus=bonus+v_bonus WHERE dept_id IN (10,20,30);
- 2 -
COMMIT; END;
结果会是什么?
A. 所有员工都得到300元的分红 B. 有300个员工会得到300元的分红 C. 所有员工的分红都会增加300元 D. 一些员工的分红增加了300元
10、如果循环在某种条件下可能不需要执行,则可以使用哪一种循环? A. FOR 循环 B. WHILE 循环 C. 条件判断在循环的最后 D. 以上都可以
11、当控制显式游标时,哪个语句执行查询并且获取结果集? A. FETCH B. OPEN C. CLOSE D. CURSOR
*12、PL/SQL 块中的哪两个条件会引发异常?(选择两个选项)
A. Select语句没有返回任何行 B. Select语句返回了多行
C. Select语句中有GROUP BY子句 D. Select语句中没有WHERE子句 E. Select列表中的数据类型与INTO子句中的数据类型不一致。
13、如果过程C 调用了过程D,在过程D 中引发了一个错误,而在过程D 中没有这个错误的异常处理程序,那么将。
A. 向用户显示一个出错信息 B. 在过程C 中引发一个错误 C. 程序控制将转到过程C 的EXCEPTION 部分 D. 结果是不可预料的
14、如果要修改表TD_M_STAFF,对列STAFF_ID 增加一个主键约束,当前表为空。哪个语句能完成这个任务?
A. ALTER TABLE td_m_staff
ADD PRIMARY KEY staff_id; B. ALTER TABLE td_m_staff
ADD CONSTRAINT PRIMARY KEY (staff_id); C. ALTER TABLE td_m_staff
ADD CONSTRAINT stud_id_pk PRIMARY KEY staff_id; D. ALTER TABLE td_m_staff
ADD CONSTRAINT stud_id_pk PRIMARY KEY(staff_id); E. ALTER TABLE td_m_staff
MODIFY CONSTRAINT stud_id_pk PRIMARY KEY(staff_id);
15、观察下面的过程
CREATE OR REPLACE PROCEDURE ADD_STAFF (V_ID IN NUMBER,V_LAST_NAME VARCHER2) IS BEGIN
INSERT INTO td_m_staff (ID,LAST_NAME). VALUES(V_ID,V_LAST_NAME);
- 3 -
COMMIT; END;
该过程需要调用UPD_BAT_STAT过程并传递一个参数,下面哪个语句能成功调用这个过程? A. EXECUTE UPD_BAT_STAT(V_ID); B. UPD_BAT_STAT(V_ID);
C. RUN UPD_BAT_STAT(V_ID); D. START UPD_BAT_STAT(V_ID);
16、函数头部的RETURN子句完成什么任务?
A. 声明返回值的数据类型 B. 声明返回值的大小和数据类型 C. 将执行转到函数体 D. 在函数头部不能使用RETURN子句
17、哪一个SQL语句只能通过动态SQL允许包括在PL/SQL中? A. INSERT B. UPDATE
C. DELETE D. CREATE TABLE
18、假设某个表很小,但是却会被许多查询经常使用,这时应当在创建这个表时显式地指定哪个子句? A. parallel B. nologging C. cache D. tablespace
19、用下列代码所示的TD_M_STAFF 表内容回答后面八个问题:
STAFFID STAFF_NAME JOB MGR HIREDATE SAL COMM DEPTNO ----- ----- -------- ---- --------- ---- ---- ------ 7369 SMITH CLERK 7902 17-DEC-80 800 20 7499 ALLEN SALEMANS 7698 20-FEB-81 1600 300 30 7521 WARD SALEMANS 7698 22-FEB-81 1250 500 30 7566 JONES MANAGER 7839 02-APR-81 2975 20 7654 MARTIN SALEMANS 7698 28-SEP-81 1250 1400 30 7698 BLAKE MANAGER 7839 01-MAY-82 2850 30 7782 CLARK MANAGER 7839 09-JUN-81 2450 10 7788 SCOTT ANALYST 7566 19-APR-87 3000 20 7839 KING PRESIDENT 17-NOV-81 5000 10 7844 TURNER SALEMANS 7698 08-SEP-81 1500 0 30 7876 ADAMS CLERK 7788 23-MAY-87 1100 20 7900 JAMES CLERK 7698 03-DEC-81 950 30 7902 FORD ANALYST 7566 03-DEC-81 3000 20 7934 MILLER CLERK 7782 23-JAN-82 1300 10
以下选项中哪个是下列查询返回的值:select sum(sal)+sum(comm) from TD_M_STAFF wherejob=’ANALYST’ or STAFF_NAME like ‘J%’? A. 6000 B. 9925 C. 9975 D. NULL
20、以下选项中哪个是下列查询返回的值:select count(mgr) from TD_M_STAFF where deptno=10?
- 4 -
A. 1 B. 2 C. 3 D. NULL
21、以下选项中哪个是下列查询返回的值:select count(*) from TD_M_STAFF where mgr=7700-2?
A. 5 B. 6 C. 7 D. NULL
22、以下选项中哪个是下列SQL 命令产生的第三个员工:select STAFF_NAME,sal from TD_M_STAFF where job=’SALEMANS’ order by STAFFID desc? A. ALLEN B. MARTIN C. TURNER D. WARD
23、以下选项中哪个是下列SQL 命令产生的第三个员工:select STAFF_NAME,sal from TD_M_STAFF where job=’SALEMANS’ order by 1 desc? A. ALLEN B. MARTIN C. TURNER D. WARD
24、以下选项中哪个是发出下列查询后Oracle 返回的值:select substr(job,1,3) from TD_M_STAFF where STAFF_NAME like upper(‘_ _ar&’)? A. ANA B. CLE C. MAN D. SAL
25、以下选项中哪个是发出下列查询后Oracle 返回的值: select
trunc(months_between(min(hiredate),max(hiredate))) from TD_M_STAFF? A. -78 B. 78 C. -77 D. 77
*26、以下选项中哪个是发出下列查询后Oracle 返回的值:select * from TD_M_STAFF where hiredate>’23-JAN-82’?(选择两个选项) A. ADAMS B. MILLER C. SCOTT D. SMITH
*27、哪两项是字符型函数?(选择两个选项)
A. TRIM B. REPLACE C. TRUNC D. TO_DATE E. MOD F. CASE
28、哪一个结果需要用组函数实现 A. 计算PRODUCT表中COST列值的总数
B. 将字符串'JANUARY 28,2000'转换为日期
C. 显示PRODUCT表中DESCRIPTION列中所有小写的值 D. 用'DD MON YYYY'格式显示日期数据
- 5 -
29、下面的脚本:
1 CREATE ROLE RMT_BRG; 2 CREATE ROLE RMT_ACT; 3 CREATE ROLE RMT_CSM;
4 CREATE user LIHONG IDENTIFIED BY LIHONG123; 5 GRANT RMT_ACT TO RMT_BRG; 6 GRANT RMT_BRG TO RMT_CSM 7 GRANT RMT_BRG TO LIHONG; LIHONG 有几个角色?
A. 1 B. 2 C. 3 D. 无
30、使用GRANT 命令可以将对象权限授予谁?
A. 用户 B. 角色
C. PUBLIC公共工作组 D. 以上都可以
二.判断题并说明理由:(共5题,每题5分,共25分)
1、如果一个表需要经常查询,就可以多建一些索引;如果查询次数不多,则不必要建立很多索引。
2、数据库中只存放视图的定义,而不使用物理存储空间保存视图中的数据,这些数据仍然放在原来的基表中。
3、过程、函数或包由PL/SQL代码构成,存放在数据库中。
4、命名程序单元是已经命名并保存的PL/SQL块,这样就可以重复使用它们。
5、ORACLE在安装过程中是需要输入注册码的。
三.简答题:(共3题,每题5分,共15分)
1.请写出 SQL 语句的分类,并举例说明这类语句是如何控制事务的。
2.请说明在 ORACLE 中怎样获得 SQL 语句的执行计划以及从执行计划中可以获得哪些信息。
3.请给出一些优化sql语句方法
- 6 -
因篇幅问题不能全部显示,请点此查看更多更全内容