Oracle PLSQL考试题 下载本文

Oracle SQL & PL/SQL 测试题

1. Oracle发出下列select语句:

SQL> select e.empno, e.ename, d.loc 2 from emp e, dept d

3 where e.deptno = d.deptno

4 and substr(e.ename, 1, 1) = ‘S’;

下列哪个语句是Oracle数据库中可用的ANSI兼容等价语句?A

A.select empno, ename, loc from emp join dept on emp.deptno = dept.deptno where substr(emp.ename, 1, 1) = ‘S’;

B.select empno, ename, loc from emp, dept on emp.deptno = dept.deptno where substr(emp.ename, 1, 1) = ‘S’;

C.select empno, ename, loc from emp join dept where emp.deptno = dept.deptno and substr(emp.ename, 1, 1) = ‘S’;

D.select empno, ename, loc from emp left join dept on emp.deptno = dept.deptno and substr(emp.ename, 1, 1) = ‘S’;

2. 你要对操纵Oracle数据库中的数据。下列哪个选项表示Oracle中select语句的功能,

并且不需要使用子查询?B

A.可以用select语句改变Oracle中的数据 B.可以用select语句删除Oracle中的数据

C.可以用select语句和另一个表的内容生成一个表 D.可以用select语句对表截断

3. Oracle数据库中发出一个查询。下列哪个选项不能查询对用户定义静态表达式执行数学

运算时的查询组件?

A.列子句 B.表子句 C.DUAL表 D.where子句

4. 你要操纵Oracle数据,下列哪个不是SQL命令?B A.select * from dual; B.set define

C.update emp set ename = 6543 where ename = ‘SMITHERS’; D.create table employees(empid varchar2(10) primary key);

5. 你要在Oracle中定义SQL查询。下列哪个数据库对象不能直接从select语句中引用?C A.表 B.序列 C.索引 D.视图

6. 你要根据PRODUCT_NAME列从PROFITS表查询中过滤返回的数据。下列哪个子句包含相应

过滤条件的引用?

A.select B.from C.where D.having

7. 下列代码显示了PROFITS表输出的局部:

PRODUCT_NAME PRODUCT_TYPE QTR_END_DATE PROFIT

------------ ------------ ------------ ------------- BARNEY DOLL TOY 31-MAR-2001 6575430.30 GAS GRILL APP 31-MAR-2001 1234023.88

PENCIL OFFICE 30-JUN-2001 34039.99

下列查询的where子句哪个能正确计算2001年1月1日到6月1日六个月内销售的所有家电总利润?C A.where product_name = ‘GAS GRILL’ and qtr_end_date between ’01-JAN-2001’ and ‘01-JUN-2001’;

B.where proeuct_type = ‘APPLIANCE’ and name = ‘GAS GRILL’ and qtr_end_date = ’31-JAN-2001’ or ‘30-JUN-2001’; C.where proeuct_type = ‘APPLIANCE’ and qtr_end_date between ’01-JAN-2001’ and ’01-JUN-2001;

D.where proeuct_name = ‘GAS GRILL’ and qtr_end_date = ’01-JAN-2001’ or ‘01-JUN-2001’;

用下列代码所示的内容回答后面八个问题:

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ------ ---------- --------- ---- --------- ---- ---- ------ 7369 SIMTH CLERK 7902 17-DEC-80 800 20 7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30 7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30 7566 JONES MANAGER 7839 02-APR-81 2975 20 7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30 7698 BLAKE MANAGER 7839 01-MAY-81 2850 30 7782 CLARK MANAGER 7839 09-JUN-81 2450 10 7788 SCOTT ANALYST 7566 19-APR-82 3000 20 7839 KING PRESIDENT 17-NOV-81 5000 10 7844 TURNER SALESMAN 7698 08-SET-81 1500 0 30 7876 ADAMS CLERK 7788 23-DEC-82 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

8. 以下选项中哪个是下列查询返回的值:select sum(sal) + sum(comm) from emp where job

= ‘ANALYST’ or ename like ‘J%’ D?

A.6000 B.9925 C.9975 D.NULL

9. 以下选项中哪个是下列查询返回的值:select count(mgr) from emp where deptno = 10 ?C A.1 B.2 C.3 D.NULL

10. 以下选项中哪个是下列查询返回的值:select count(*) from emp where mgr = 7700-2 ? A.5 B.6 C.7 D.NUL

11. 以下选项中哪个是下列SQL命令产生的第三个员工:select ename, sal from emp where

job= ‘SALESMAN’ order by empno desc ? D A.ALLEN B.MARTIN C.TURNER D.WARD

12. 以下选项中哪个是下列SQL命令产生的第三个员工:ename, sal from emp where job=

‘SALESMAN’ order by 1 desc ? D

A.ALLEN B.MARTIN C.TURNER D.WARD

13. 以下选项中哪个是发出下列查询后Oracle返回的值:select substr(job, 1, 3) from emp

where ename like upper(‘__ar%’) ? A A.ANA B.CLE C.MAN D.SAL

14. 以下选项中哪个是发出下列查询后Oracle返回的值:select

trunc(months_between(min(hiredate), max(hiredate))) from emp ? A.24 B.25 C.-24 D.-25

15. 以下选项中哪个是发出下列查询后Oracle返回的值:select * from emp where hiredate >

AD

’23-JAN-82’ ?(选择两个答案)

A.ADAMS B.MILLER C.SCOTT D.SMITH

16. TEST表包含两个列,TESTCOL定义为数据类型NUMBER(10),TESTCOL_2定义为数据类型

VARCHAR2(10)。在Oracle中发出下列语句:insert into test(testcol, testcol_2) values (null, ‘FRANCIS’),然后对表进行下列查询:select nvl(testcol, ‘EMPTY’) as testcol from test where testcol_2 = ‘FRANCIS’。下列选项哪个是得到的结果?B

A.Oracle返回结果0 B.Oracle返回结果EMPTY C.Oracle返回结果NULL D.Oracle返回错误结果

17. 要从ORDERS表中取得数据,其中包括三个列CUSTOMER、ORDER_DATE与ORDER_AMT。可以

用下列哪个where子句查询ORDERS表,取得客户LESLIE超过2700的订单?D A.where customer = ‘LESLIE’;

B.where customer = ‘LESLIE’ and order_amt < 2700; C.where customer = ‘LESLIE’ or order_amt > 2700; D.where customer = ‘LESLIE’ and order_amt > 2700;

18. 用下列输出回答问题(假设这里的信息来自本章使用的EMP表):

EMPNO

---------- SMITH-dog- ALLEN-dog- WARD-dog-d JONES-dog- MARTIN-dog BLAKE-dog- CLARK-dog- SCOTT-dog- KING-dog-d

TURNER-dog JAMES-dog- FORD-dog-d MILLER-dog

下列哪个SQL语句产生这个输出?

A.select trim(trailing ‘-dog’ from ename) as ename from emp; B.select rpad(ename, 10, ‘-dog’) as ename from emp; C.select substr(ename,1 , 10) as ename from emp;

D.select lpad(ename, 10, ‘-dog’) as ename from emp;

19. 用下列代码块回答问题:

SQL> select ______(-45) as output from dual; OUTPUT ------ -45

下列哪个单行函数无法产生这个输出?A

A.abs() B.ceil() C.floor() D.round()

20. 对表中的某一行,VARCHAR2列包含数值SMITHY,应用程序在右侧填充七个空格。length()

函数处理这个列值时,返回什么值?

A.6 B.13 C.30 D.60

21. SQL *Plus中发出的下列语句: SQL> select ceil(-97.342), 2 floor(-97.342), 3 round(-97.342), 4 trunc(-97.342) 5 from dual;

下列哪个函数不返回结果-97?

A.ceil() B.floor() C.round() D.trunc()

22. SQL *Plus中发出的下列语句: SQL> select ceil(256.342), 2 floor(256.342), 3 round(256.342), 4 trunc(256.342) 5 from dual;

下列哪个函数不返回结果256?

A.ceil() B.floor() C.round() D.trunc()

23. 在Oracle中发出的下列查询:

SQL> select months_between(‘15-MAR-83’,’15-MAR-97’) form dual; Oracle返回什么?C

A.14 B.-14 C.168 D.-168

24. 你要在Oracle中使用日期信息的格式掩码。下列哪种情形不适合这个格式掩码?C

A.to_date() B.to_char() C.alter session set nls_date_format D.to_number()

25. 数据库中有两表PRODUCT与STORAGE_BOX,PRODUCT表中列出各个产品的惟一ID号、产

品名和特定产品所在的箱子。另一个表中列出各个存储箱(用数字标识)可以包含许多产品,但每个箱子只能在一个地方。下列哪个语句能正确显示这个数据库中所有产品ID、名称和箱子地址?

A.select p.prod_id, p.prod_name, b.box_loc from product p, storage_box b where p.prod_id = b.prod_id and prod_name=’WIDGET’;

B.select p.prod_id, p.prod_name, b.box_loc from product p, storage_box b where prod_name=’WIDGET’;

C.select p.prod_id, p.prod_name, b.box_loc from product p, storage_box b where p.stor_box_num = b.stor_box_num and prod_name=’WIDGET’;

D.select prod_id, prod_name, box_loc from product , storage_box where stor_box_num = stor_box_num and prod_name=’WIDGET’;

26. 开发报表时,要连接三个表的信息,这些表为EMP、DEPT与SALGRADE。只需要公司10

级以上员工相应的员工、部门地址与工资范围的记录。这个查询需要多少比较运算? A.2 B.3 C.4 D.5

27. 要连接两个表PRODUST与STOTAGE的内容,列出所有包含产品的箱子地址。PRODUCT有三

列ID、NAME与BOX#;STORAGE有两列BOX#与LOC。下列哪个选项无法得到想要的结果? A.select product.id, product.name, storage.loc from product, storage where product.box#=storage.box#;

B.select product.id, product.name, storage.loc from product join storage on product.box#=storage.box#;

C.select product.id, product.name, storage.loc from product natural join storage on product.box#=storage.box#;

D.select product.id, product.name, storage.loc from product natural join storage;

28. 你要定义外连接,下列哪个选项正确描述了外连接语句?

A.由于外连接操作允许一个表中有NULL值,因此连接这些表时不必指定相等性比较。 B.在表A与B的外连接语句中,如果不管B表有无相应记录,都要显示表A的所有行, 则可以使用右外连接。

C.在表A与B的外连接语句中,如果不管A表有无相应记录,都要显示表B的所有行, 则可以使用左外连接。

D.尽管外连接操作允许一个表中有NULL值,但连接这些表时仍要指定相等性比较。

29. 数据库中有两个表PRODUCT与STORAGE_BOX,表中列出各个产品的惟一ID号、产品名和

特定产品所在的箱子。另一个表中列出各个存储箱(用数字标识)可以包含许多产品,但每个箱子只能在一个地方。下列哪个语句能正确显示这个数据库中所有产品ID、名称和箱子地址,不管有没有指定存储箱?

A.select p.prod_id, p.prod_name, b.box_loc from product p left outer join storage_box b on p.stor_bax_num = b. stor_bax_num where prod_name=’WIDGET’(+); B.select p.prod_id, p.prod_name, b.box_loc from product p left outer join storage_box b on p.stor_bax_num = b. stor_bax_num where prod_name=’WIDGET’ ;

C.select p.prod_id, p.prod_name, b.box_loc from product p right outer join storage_box b where b.stor_bax_num = p. stor_bax_num(+) and prod_name=’WIDGET’(+); D.select p.prod_id, p.prod_name, b.box_loc from product p full outer join storage_box b on p.stor_bax_num = b. stor_bax_num where b.stor_box_num is NULL ;

30. Oracle中发出下列命令:

SQL> select e.ename,a.street_address,a.city,a.post_code 2 from emp e,addr a

3 where e.empno = a.empno(+) 4 and a.state = ‘TEXAS’;

下列哪个选项显示等价ANSI/ISO语句?

A.select e.ename, a.street_address, a.city, a.state, a.post_code from emp e outer join addr a on e.empno = a.empno where a.state = ‘TEXAS’;

B.select e.ename, a.street_address, a.city, a.state, a.post_code from emp e left outer join addr a on e.empno = a.empno where a.state = ‘TEXAS’;

C.select e.ename, a.street_address, a.city, a.state, a.post_code from emp e right outer join addr a on e.empno = a.empno where a.state = ‘TEXAS’;

D.select e.ename, a.street_address, a.city, a.state, a.post_code from emp e right outer join addr a where e.empno = a.empno(+) and a.state = ‘TEXAS’;

31. 检查SQL *Plus的下列输出:

PRODUCT.ID PRODUCT.NAME BOX.LOCATION ---------- ------------ ------------ 578-X WIDGET IDAHO TENNESSEE 456-Y WIDGET

下列哪个选项是产生这个结果的查询类型?

A.全外连接 B.左外连接 C.右外连接 D.等连接

32. PROFITS表存储公司不同地区、产品类型和季度的利润信息。下列哪个SQL语句显示不同

地区、产品类型和季度的利润的交叉表输出?

A.select region, product_type, time, sum(profit) from profits group by region, prod_type, time; B.select region, product_type, time from profits group by rollup(region, prod_type, time);

C.select region, product_type, time, from profits group by cube(region, prod_type, time);

D.select region, product_type, time,sum(profit) from profits group by cube(region, prod_type, time);

33. 对数据库运行下列哪个group by查询时会从Oracle产生错误? A.select deptno, job, sum(sal) from emp group by job, deptno; B.select sum(sal), deptno, job from emp group by job, deptno; C.select deptno, job, sum(sal) from emp;

D.select deptno, sum(sal), job from emp group by job, deptno;

34. 检查下列SQL的输出

SQL> select a.deptno,a.job,b.loc,sum(a.sal) 2 from dmp a,dept b

3 where a.deptno = b.depton 4 group by a.deptno,a.job,b.loc 5 order by sum(a.sal);

这个查询按哪个列的顺序返回输出?

A.A.DEPTON B.A.JOB C.B.LOC D.SUM(A.SAL)

35. 要查询的PROFITS表存储公司不同地区、产品类型和季度的利润信息。下列哪个SQL语

句按不同地区、产品类型和季度求出平均利润大于100000美元的利润?

A.select region, prod_type, period, avg(profits) from profits where avg(prodit) > 100000 group by region, prod_type, period;

B.select region, prod_type, period, avg(profits) from profits where avg(prodit) > 100000 order by region, prod_type, period;

C.select region, prod_type, period, avg(profits) from profits group by region, prod_type, period having avg(prodit) > 100000;

D.select region, prod_type, period, avg(profits) from profits group by region, prod_type, period having avg(prodit) < 100000;

36. 公司的员工费用应用程序有两表,一个是EMP,包含所有员工数据,一个是EXPENSE,包

含公司每个员工提交的费用票据。下列哪个查询取得提交的费用总和超过其工资值的员工ID与姓名?

A.select e.empno, e.ename from emp e where e.sal < (select sum(x.vouch_amt) from expense x) and x.empno = e.empno;

B.select e.empno, e.ename from emp e where e.sal < (select x.vouch_amt from expense x where x.empno = e.empno);

C.select e.empno, e.ename from emp e where e.sal < (select sum(x.vouch_amt) from expense x where x.empno = e.empno);

D.select e.empno, e.ename from emp e where exists (select sum(x.vouch_amt) from expense x where x.empno = e.empno);

37. 看看下列语句: SQL> select ename 2 from emp

3 where empno in 4 ( select empno

5 from expense

6 where vouch_amt > 10000 );

下列哪个SQL语句产生与上面相同的输出,改写成使用运算符?

A.select e.ename from emp e where exists(select x.empno from expense x where x.vouch_amt>10000) and x.empno = e.empno;

B.select e.ename from emp e where exists(select x.empno from expense x where x.vouch_amt>10000 and x.empno = e.empno);

C.select e.ename from emp e where x.empno = e.empno and exists(select x.empno from expense x where x.vouch_amt>10000) D.select e.ename from emp e, expense x where x.empno = e.empno and x.vouch_amt>10000 and exists(select x.empno from expense x where)

38. 用下列代码块回答问题:

SQL> select deptno,job,avg(sal) 2 from emp

3 group by deptno,job 4 having avg(sal)> 5 ( select sal 6 from emp

7 where ename = ‘MARTIN’ ); 上述语句使用下面哪种子查询?df

A.单行子查询 B.多行子查询 C.from子句子查询 D.多列子查询

39. 公司销售数据库有两个表,PROFITS存储不同地区不同季度的产品销售利润,REGIONS存

储每个部门地区名称、该地区总部地址和该地区副总裁姓名。下列哪个查询取得SMITHERS、FUJIMORI与LIKKARAJU领导的地区的玩具销售利润? A.select sum(profit) from profits where region in (select region froms regions where reg_head in (‘SMITHERS’, ‘FUJMORI’, ‘LAKKARAJU’)) and product =’TOYS’; B.select sum(profit) from profits where region like (select region froms regions where reg_head in (‘SMITHERS’, ‘FUJMORI’, ‘LAKKARAJU’) and product =’TOYS’ ); C.select sum(profit) from profits where region = (select region froms regions where reg_head in (‘SMITHERS’, ‘FUJMORI’, ‘LAKKARAJU’)) and product =’TOYS’; D.select sum(profit) from profits where region is (select region froms regions where reg_head in (‘SMITHERS’, ‘FUJMORI’, ‘LAKKARAJU’)) and product =’TOYS’;

40. 下列代码块显示的查询包含一个子查询: SQL> select dname, avg(sal) as dept_avg 2 from emp, dept

3 where emp.deptno = dept.deptno 4 group by dname having avg(sal) > 5 ( select avg(sal)*1/4 6 from emp,dept

7 where emp.deptno = dept.deptno ) 8 order by avg(sal);

可以用下列哪个子句重新定义这个查询,删除子查询与主查询中组函数执行的重复? A.group by B.order by C.with D.having

41. 用下列代码块回答问题:

SQL> select e.deptno,e.ename,e.job,e.sal 2 from emp e 3 where e.sal =

4 ( select max(e2.sal) 5 from emp e2

6* where nvl(e.deptno,99) = nvl(e2.deptno,99)); DEPTNO ENAME JOB SAL

--------- ---------- ---------- --------- 30 BLAKE MANAGER 2850 10 CLARK MANAGER 2450 20 SCOTT ANALYST 3000 KING PRESIDENT 5000 20 FORD ANALYST 3000

要在上述返回集的DEPTNO列中显示99,可以用下列哪个SQL语句?

A.select nvl(e.deptno,99), e.ename, e.sal from emp e where (e.deptno, e.sal) = (select max(e2.sal) from emp e2 where nvl(e.dept, 99) = nvl(e2.deptno, 99)); B.select nvl(e.deptno,99), e.ename, e.sal from emp e where e.sal = (select max(e2.sal) from emp e2 where nvl(e.dept, 99) = nvl(e2.deptno, 99));

C.select nvl(e.deptno,99), e.ename, e.sal from emp e where (e.deptno, e.sal) = (select e2.deptno,max(e2.sal) from emp e2 where nvl(e.dept, 99) = nvl(e2.deptno, 99));

D.select nvl(e.deptno,99), e.ename, e.sal from emp e where (e.deptno, e.sal) = (select e2.deptno,max(e2.sal) from emp e2 where nvl(e.dept, 99) = nvl(e2.deptno, 99) group by e1.deptno);

42. 公司销售数据库包含一个PROFITS表,按产品名、销售地区和季度列出利润信息。如果

要取得公司五个最畅销产品清单,可以用下列哪个SQL语句:

A.select p.prod_name, p.profit from (select prod_name, profit from profits order by profit desc) where rownum <= 5;

B.select p.prod_name, p.profit from (select prod_name, sum(profit) from profits group by prod_name order by sum(profit) desc) subq where p.prod_name = subq.prod_name;

C.select p.prod_name, p.profit from (select prod_name, sum(profit) from profits group by prod_name order by sum(profit) desc) where rownum <= 5;

D.select p.prod_name, p.profit from (select prod_name, sum(profit) from profits order by sum(profit) desc) where rownum <= 5;

43. 检查下列代码段中的脚本dates.sql:

accept v_hiredate prompt ‘enter hire date => ’ select empno, ename, job

from emp

where trunc(hiredate) = trunc(‘&v_hiredate’); 为了使脚本正确工作,要改变哪个方面?

A.变量v_hiredate应变成接受DATE信息。 B.查询中的trunc()函数应删除。 C.accept命令中的prompt子句是多余的。 D.这个脚本很好。

44. Oracle中要生成数据库表,下列哪个选项是无效表生成的语句?

A.create table cats(c_name varchar2(10), c_weight number, c_owner varchar2(10)); B.create table my_cats as select * from cats where owner = ‘ME’;

C.create global temporary table temp_cats(c_name varchar2(10), c_weight number, c_owner varchar2(10));

D.create table 51cats as select c_name, c_weight from cats where c_weight > 5;

45. 试图在Oracle生成表时遇到下列错误:ORA-00955-name is already used by existing

object。下列哪个选项无法纠正这个错误?

A.以不同的用户身份生成对象。 B.删除现有同名对象 C.改变生成对象中的列名。 D.更名现有同名对象。

46. SALES表中的PROFITS列声明为NUMBER(10, 2)。下列哪个值无法在这个列中存储? A.5392845.324 B.871039453.1 C.75439289.34 D.60079829.25

47. 员工KING于1981年11月17日聘用,你对Oracle数据库发出下列查询:select

vsize(hiredate) from emp where ename = ‘KING’。下列哪个选项是返回的值? A.4 B.7 C.9 D.17

48. SALES表中将PRODUCT_NAME列定义为CHAR(40)。后面要在表中增加一行,PRODUCT_NAME

值为CAT_TOYS。然后发出下列命令:select vsize(product_name) from sales。下列哪个选项是返回的值?

A.8 B.12 C.40 D.4000

49. JOB表有三个列JOB_NAME、JOB_DESC和JOB_WAGE。用下列命令在JOB_DESC表中插入新

行:

SQL> insert into job(job_name, job_desc) 2 values (‘LUCKEY’, ‘MAKES COFFEE’); 之后查询这个表时得到的结果:

SQL> select * from job where job_name = ‘LUCKEY’; JOB_NAME JOB_DESC JOB_WAGE --------- ------------ -------- LUCKEY MAKES COFFEE 35 数据是如何填信JOB_WAGE表的?

A.JOB表中的LACKEY行已经存在,JOB_WAGE设置为35。

B.生成表时JOB_WAGE列定义的default子句指定插入行时的值。 C.insert语句的values子句包含隐藏值,在插入行时加入。

D.惟一理由是对JOB表发出的后一个update语句增加了JOB_WAGE值

50. 删除Oracle数据库中父/子关系中的父表。在删除父表时下列哪个对象不会删除?A A.相关约束 B.子表 C.相关触发器 D.相关索引

51. SALES表中定义的检查约束包含两个列PRODUCT_NAME与SALE_PERIOD。下列哪些选项表

示定义的检查约束?选择两个。 A.alter table sales add constraint ck_sales_01 check(product_type in(‘TOYS’, ‘HOT DOGS’,‘PALM PILOTS’));

B.alter table sales add constraint ck_sales_01 check(product_type in(select product_type from valid_products)); C.alter table sales modify(product_type varchar2(30) check(product_type in(‘TOYS’, ‘HOT DOGS’,‘PALM PILOTS’))); D.alter table sales add(product_name varchar2(30) check(product_name <> ‘AK-47’));

52. 你要关闭SALES表中UNIT_PRICE列的非NULL约束。下列哪个语句能完成这个操作? A.alter table sales modify(unit_prices null); B.alter table sales modify(unit_prices not null); C.alter table sales add(unit_prices null); D.alter table sales add(unit_prices not null);

53. 在Oracle中,可用于提取日期时间类型特定部分(如年、月、日、时、分、秒)的函数

有(),选择两个。 A. DATEPART B. EXTRACT C. TO_CHAR D. TRUNC

54. 在Oracle中,有一个教师表teacher的结构如下:

ID NUMBER(5)

NAME VARCHAR2(25) EMAIL VARCHAR2(50)

下面哪个语句显示没有Email地址的教师姓名()。 A. SELECT name FROM teacher WHERE email = NULL; B. SELECT name FROM teacher WHERE email <> NULL; C. SELECT name FROM teacher WHERE email IS NULL; D. SELECT name FROM teacher WHERE email IS NOT NULL;

55. 在Windows操作系统中,Oracle的()服务监听并接受来自客户端应用程序的连接请求。 A. OracleHOME_NAMETNSListener B. OracleServiceSID C. OracleHOME_NAMEAgent

D. OracleHOME_NAMEHTTPServer

56. 在 Oracle 中创建用户时,若未提及 DEFAULT TABLESPACE 关键字,则 Oracle 就将()

A. B. C. D.

57. 在Oracle中,下面哪条语句当COMM字段为空时显示0,不为空时显示COMM的值()。 A. SELECT ename, NVL(comm, 0) FROM emp; B. SELECT ename, NULL(comm, 0) FROM emp; C. SELECT ename, NULLIF(comm, 0) FROM emp;

D. SELECT ename, DECODE(comm, NULL, 0) FROM emp;

58. 在Oracle中,下面用于限制分组函数的返回值的子句是()。 A. WHERE B. HAVING C. ORDER BY

D. 无法限定分组函数的返回值

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

加的是()。

A. select seq.ROWNUM from dual; B. select seq.ROWID from dual; C. select seq.CURRVAL from dual; D. select seq.NEXTVAL from dual;

60. 在Oracle中,游标都具有下列属性,除了()。 A. %NOTFOUND B. %FOUND C. %ROWTYPE D. %ISOPEN E. %ROWCOUNT

61. 在Oracle中,当控制一个显式游标时,下面哪种命令包含INTO子句()。 A. OPEN B. CLOSE C. FETCH D. CURSOR

62. 在Oracle中,PL/SQL块中定义了一个带参数的游标: CURSOR emp_cursor(dnum NUMBER) IS

SELECT sal, comm FROM emp WHERE deptno = dnum; 那么正确打开此游标的语句是(),选择两个。 A. OPEN emp_cursor(20); B. OPEN emp_cursor FOR 20;

表空间分配给用户作为默认表空间。 USER SYSTEM SYS DEFAULT

C. OPEN emp_cursor USING 20;

D. FOR emp_rec IN emp_cursor(20) LOOP ? END LOOP;

63. Oracle提供的(),能够在不同硬件平台上的Oracle数据库之间传递数据。 A. 归档日志运行模式 B. RECOVER命令

C. 恢复管理器(RMAN) D. Export和Import工具

64. 有表一的查询结果如下,该表为学生成绩表 select id,grade from student_grade ID GRADE

-------- ----------- 1 50 2 40 3 70 4 80 5 30 6 90

表二为补考成绩表

select id,grade from student_makeup ID GRADE

-------- ----------- 1 60 2 80 5 60

现在通过如下语句把补考成绩更新到成绩表中,并提交: update student_grade s set s.grade =

(select t.grade from student_makeup t where s.id=t.id); commit;

请问之后查询:

select GRADE from student_grade where id = 3;结果为: A. 0 B. 70 C. Null

D. 以上都不对

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

session1 session2

----------------------------- ------------------------------ T1 select count(*) from t;

--显示结果(1000)条

T2 delete from t where rownum <=100;

T3 begin

delete from t where rownum <=100; commit; end;/ T4 truncate table t;

T5 select count(*) from t; --这里显示的结果是多少 A. 1000 B. 900 C. 800 D. 0

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

67. 可以使用()伪列来访问序列。 A. currval和nextval B. nextval和preval C. cache和nocache D. maxvalue和minvalue

68. pl/sql块中不能直接使用的SQL命令式() A. select B. insert C. update D. drop

69. 以零做除数会引发()异常。 A. value_error B. zero_divide C. Storage_error D. self_is_null

70. 公用的子程序和常量在()中声明 A. 过程 B. 游标 C. 包规范 D. 包主体

71. 以下不属于命名的PL/SQL块的是()。

A. 程序包 B. 过程 C. 游标 D. 函数

72. ()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;

73. 以下对表空间描述正确的是? A. 一个数据库只能有一个表空间

B. 一个数据库可以有多个表空间但是只能有一个临时表空间 C. 数据库中表空间数量是没有限制的,但数据文件数量有限制 D. 一个表空间只能被一个用户所使用 E. 一个表空间可以管理多个数据文件

74. 以下对约束描述正确的是

A. 在建表的时候必须定义该表的主键约束,否则不能通过语句修改 B. 约束中唯一约束、主键约束都会自动创建唯一索引 C. 一个字段不能同时有主键约束和唯一约束 D. 一个字段可以即为主键又为外键 E. 被Check约束修饰的字段不能为空

75. create tablespace space_64

Datafile ‘spac_6401.dbf’ size 10M,’space_6402.dbf’size 5M Default storage (

initial initValue next nextValue maxextents unlimited pctincrease 20 )online;

对以上语句的initvalue或nextvalue解释正确的是: A. Initvalue是每次创建数据区时的初始化数据块数量 B. Initvalue是第一个数据区创建时的初始化数据块数量

C. Nextvalue是当数据去的数据块不够使用时每次分配的数据块数量 D. Nextvalue是除第一个数据区之外的数据区分配数据块的数量 E. 以上答案都不正确

76. 下面对Oracle事务描述正确的是:

A. 事务具有原子性是不可再分的,要么一起成功要么一起失败 B. 一个事务中可以包含多条DML语句 C. 一个事务中可以包含多条DDL语句 D. DDL语句的事务是自动提交

E. 若事务回滚,则在事务中执行的所有DML操作均会被还原

77. 对于[full|left|right]outer join语句描述正确的是

A. Full关联查询时将两张表的所有记录都相互关联起来形成查询结果

B. Left关联查询是在两张表关联查询生成结果后,将左侧表中没有关联上的数据也追加到

查询结果集中

C. Left和right在10g中可以通过(+)来实现 D. Full就是笛卡尔乘积的结果

78. PL/SQL语句块描述正确的是:

A. PL/SQL语句块不允许有嵌套关系出现

B. PL/SQL语句块中的所有变量、类型、异常均要在declare语句块中定义 C. 在PL/SQL使用的所有变量都必须在declare中定义

D. PL/SQL语句块中begin和end之间不能只有sql语句,必须要有PL/SQL表达式

79. 函数的使用,正确的是:

A. 单行函数只能被只有一条查询结果的sql语句所使用 B. 函数不能出现在form子句中

C. 函数可以与insert、update、delete语句一起使用 D. 函数可以与create、drop、alter表的语句一起使用

80. 存储过程与函数的区别有

A. 存储过程可以自行函数,但是函数中不能调用存储过程 B. 能执行存储过程的地方一定能执行函数 C. 存储过程没有返回值,而函数摇摇有返回值

D. 存储过程可以被JDBC直接调用,而函数必须要借助PL/SQL表达式或SQL语句才能执行

81. 下面关于游标与游标变量的叙述中,正确的是:

A. 游标不能作为参数或返回类型出现在子程序的定义上,而游标变量可以 B. 游标变量一直只能与一个SQL语句绑定 C. 游标变量不能使用for循环遍历

D. 游标变量必须在open操作时才与SQL语句关联

82. PL/SQL下定义package描述正确的是:

A. 包的声明中必须按照类型、变量、异常、子程序、游标的定义顺序来声明内容,不允许

将游标定义在类型的前面

B. 包的声明中定义的子程序在包体中必须有实现,但游标可以没有 C. 包体中的所有子程序定义不一定都必须是在包声明中定义过的 D. 包体中的所有内容都必须在包声明中定义,否则会被视为无效内容

83. PL/SQL下的动态SQL语句可能会出错的语句是: A. execute immediate ‘select min(sal)from emp’; B. execute immediate ‘select sal from emp’;

C. execute immediate ‘select min(sal), from emp group by deptno’;

D. execute immediate ‘select sal, ename, job from emp where empno=7788’into

var_sal,var_ename,var_job;

84. JDBC中DatabaseMetaData与ResultSetMetaData的区别是: A. DatabaseMetaData是获取当前用户所能访问到的数据库环境信息,而ResultSetMetaData

获取的是一次select查询结果的结构信息

B. ResultSetMetaData不能获取字段信息,而DatabaseMetaData可以

C. DatabaseMetaData是ResultSetMetaData的父类,能获取表、表的主键等相关信息 D. 一个Connection 对象每次获得的DatabaseMetaData都不同,但每个ResultSet与

ResultSetMetaData都是一对一关系

85. DatabaseMetaData的getTables方法的作用描述正确的是: A. 只能按指定名称获取表信息

B. 可以获取除系统表意外的所有用户自定义表信息

C. 可以获取到当前用户可访问到的所有系统表、用户自定表、视图的信息 D. 只能访问系统表、视图的信息

86. Create user fengjie_fans Identified by 64draglong Default tablespace space_64 Temporary tablespace space_64; 以上语句总共有几处错误: A. 一处 B. 两处 C. 三处 D. 没有错误

87. Create or replace package page_package Is

Type cursor_type is ref cursor;

Procedure page_proc(argSql in varchar2(20).

pageNumber number, pageSize number,

resultSet out cursor , countPage out number);

end page_package; 以语句是否能够正确的创建表声明:B A. 可以 B. 不行

88. 下面对序列描述正确的是: A. 只能同时为一个表提供唯一值

B. 在并发访问数量较大时容易产生冲突

C. 序列会生成一段连续的,递增的整数值,通过nextval和currval获取

D. 若序列到达了递增或递减的最大值或最小值,则nextval与currval的执行结果会是相

同的

E. 序列默认的缓存大小为30

89. ()包用于显示PL/SQL块和存储过程中的调试信息。 A. DBMS_OUTPUT B. DBMS_STANDARD C. DBMS_INPUT D. DBMS_SESSION

90. Student表的结构如下: Std_id number(4) Course_id varchar2(10) Start_date date End_date date

下面那两个函数可以使用在Start_date字段上DC。 A. Sum(start_date) B. avg(start_date) C. count(start_date) D. min(start_date) E. maxmum(start_date)

91. marks表的结构如下: Std_id number(4) Student_name varchar2(30) Subj1 number(3) Subj2 number(3)

Subj1和Subj2为学生的两个评分成绩,检查下面的SQL语句: Select subj1+subj2 total_marks, std_id From marks

Where subj1>avg(subj1) and subj2>avg(subj2) Order by total_marks;

这条SQL语句执行后会出现什么结果?

A. Sql语句执行成功并且按条件返回相应结果 B. Sql报出一个select部分的错误 C. Sql报出一个wehere部分的错误 D. Sql报出一个order by部分的错误

92. Employee表的结构如下: Employee_id number(4) Ename varchar(25) Job_id varchar(10)

那条sql语句能够返回ename、ename的长度、字符‘a’在ename列的位置,并且ename的结束字符为‘n’的所有记录。A

A. Select ename,length(ename),instr(ename,’a’) from employees where

substr(ename,-1,1)=’n’;

B. Select ename,length(ename),instr(ename,,-1,1) from employees where

substr(ename,-1,1)=’n’;

C. Select ename,length(ename),substr(ename,-1,1) from employees where

instr(ename,1,1)=’n’;

D. Select ename,length(ename),substr(ename,-1,1) from employees where

instr(ename,-1,1)=’n’;

93. 下面关于完全外连接的说法那一条是正确的?C A. 两个表都包含Null的值。

B. 能得到一个表中所有未匹配的数据。 C. 能得到所有表中所有匹配的数据。 D. 能从所有表中得到所有未匹配的数据。 E. 能从一个表中得到比其他表中更多的数据。 F. 能从一个表中得到所有匹配和未匹配上的数据。

94. 那条SQL语句能够对计算字段salary*12产生别名annual salary? C A. Select ename,salary*12 ‘Annual Salary’ from employee B. Select ename,salary*12 “Annual Salary” from employee C. Select ename,salary*12 as Annual Salary from employee

D. Select ename,salary*12 asinitcap(“Annual Salary”) from employee

95. Employees表的结构如下:

Employee_id number primary key First_name varchar2(25) Last_name varchar2(25) Department_id number Aslary number

下面那条sql语句的语法是正确的?

A. Select a.last_name,a.salary,a.department_id,b.maxsal

from employees a,( Select department_id, max(salary) maxsal from employees group by department_id) b

Where a.department_id = b.department_id and a.salary

from employees a

Where a.department_id in (Select department_id from employees b group by department_id having salary=(select max(salary) from employees)); C. Select a.last_name,a.salary,a.department_id,b.maxsal

from employees a

where a.salary = (select max(salary) from employees b where a.department_id = b. department_id)

D. Select a.last_name,a.salary,a.department_id,b.maxsal

from employees a where (a.department_id, a.salary) in (select department_id, a.salary) in (Select department_id, max(salary) from employees b group by department_id order by department-id);

96. 下面那个条件能够使得查询语句的返回结果仅显示员工的薪水大于5000的记录?D A. Order by salary > 500 B. group by salary > 500 C. having salary > 500 D. where salary > 500

97. 关于子查询的描述,下面哪两条是正确的?BC A. 一个单行子查询只能返回一行和一列数据 B. 一个单行子查询只能返回一行和多列数据 C. 一个多行子查询能够返回多行和多列数据

D. 作为比较条件,能够使用“>”比较符在一个多行子查询上 E. 作为比较条件,能够使用in操作符在一个单行子查询上 F. 作为比较条件,能够使用“=”比较符在一个多行子查询

98. 哪一个操作符能够用于多行子查询? A. = B. Like C. Between D. Not in E. Is F. <>

99. 如果要显示last name中第二个字符为“A”的员工的姓名,下列那天SQL语句是正确的? A. Select last_name from emp where last_name like ‘_A%’; B. Select last_name from emp where last_name = ‘*A%’; C. Select last_name from emp where last_name = ‘_A%’; D. Select last_name from emp where last_name like ‘*A%’;

100. 那一个查询语句能够提取当前的系统时间并且显示成“2010”的格式? A. Select to_char(sysdate, ’yyyy’) from dual;

B. Select to_char(substr(sysdate,8,2), ’year’) from dual; C. Select to_date(sysdate, ’yyyy’) from dual;

D. Select decode(substr(sysdate,8), ’YYYY’) from dual; E. Select decode(substr(sysdate,8), ’year’) from dual;