logo资料库

Oracle笔试试题及答案.doc

第1页 / 共12页
第2页 / 共12页
第3页 / 共12页
第4页 / 共12页
第5页 / 共12页
第6页 / 共12页
第7页 / 共12页
第8页 / 共12页
资料共12页,剩余部分请下载后查看
Oracle 笔试试题及答案 一、选择题(每题 1 分) 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.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 语句的功能, 并且不需要使用子查询? A.可以用 select 语句改变 Oracle 中的数据 中的数据 C.可以用 select 语句和另一个表的内容生成一个表 D.可以用 select 语句对表截断 B.可以用 select 语句删除 Oracle 3. Oracle 数据库中发出一个查询。下列哪个选项不能查询对用户定义静态表达式执行数学 运算时的查询组件? B.表子句 A.列子句 C.DUAL 表 D.where 子句 4. 你要操纵 Oracle 数据,下列哪个不是 SQL 命令? A.select * from dual; C.update emp set ename = 6543 where ename = ‘SMITHERS’; D.create table employees(empid varchar2(10) primary key); B.set define 5. 你要在 Oracle 中定义 SQL 查询。下列哪个数据库对象不能直接从 select 语句中引用? A.表 C.索引 B.序列 D.视图 6. 你要根据 PRODUCT_NAME 列从 PROFITS 表查询中过滤返回的数据。下列哪个子句包含相 应过滤条件的引用? B.from A.select C.where D.having 7. 下列代码显示了 PROFITS 表输出的局部: PRODUCT_NAME ------------ PRODUCT_TYPE ------------ QTR_END_DATE ------------ PROFIT -------------
TOY APP OFFICE 31-MAR-2001 31-MAR-2001 30-JUN-2001 BARNEY DOLL GAS GRILL PENCIL 下列查询的 where 子句哪个能正确计算 2001 年 1 月 1 日到 6 月 1 日六个月内销售的所有家 电总利润? 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 6575430.30 1234023.88 34039.99 = ’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’; MGR ---- 7902 7698 7698 7839 7698 7839 7839 7566 用下列代码所示的内容回答后面八个问题: EMPNO ------ 7369 7499 7521 7566 7654 7698 7782 7788 7839 7844 7876 7900 7902 7934 ENAME ---------- SIMTH ALLEN WARD JONES MARTIN BLAKE CLARK SCOTT KING TURNER ADAMS JAMES FORD MILLER JOB --------- CLERK SALESMAN SALESMAN MANAGER SALESMAN MANAGER MANAGER ANALYST PRESIDENT SALESMAN CLERK CLERK ANALYST CLERK 7698 7788 7698 7566 7782 HIREDATE --------- 17-DEC-80 20-FEB-81 22-FEB-81 02-APR-81 28-SEP-81 01-MAY-81 09-JUN-81 19-APR-82 17-NOV-81 08-SET-81 23-DEC-82 03-DEC-81 03-DEC-81 23-JAN-82 SAL ---- 800 1600 1250 2975 1250 2850 2450 3000 5000 1500 1100 950 3000 1300 COMM ---- 300 500 1400 0 DEPTNO ------ 20 30 30 20 30 30 10 20 10 30 20 30 20 10 8. 以下选项中哪个是下列查询返回的值:select sum(sal) + sum(comm) from emp where job = ‘ANALYST’ or ename like ‘J%’ ? A.6000 B.9925 C.9975 D.NULL 9. 以下选项中哪个是下列查询返回的值:select count(mgr) from emp where deptno = 10 ? A.1 D.NULL C.3 B.2 10. 以下选项中哪个是下列查询返回的值:select count(*) from emp where mgr = 7700-2 ? A.5 D.NUL C.7 B.6 11. 以下选项中哪个是下列 SQL 命令产生的第三个员工:select ename, sal from emp where job= ‘SALESMAN’ order by empno desc ?
A.ALLEN B.MARTIN C.TURNER D.WARD 12. 以下选项中哪个是下列 SQL 命令产生的第三个员工:ename, sal from emp where job= ‘SALESMAN’ order by 1 desc ? A.ALLEN B.MARTIN C.TURNER D.WARD 13. 以下选项中哪个是发出下列查询后 Oracle 返回的值:select substr(job, 1, 3) from emp where ename like upper(‘__ar%’) ? D.SAL B.CLE A.ANA C.MAN 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 > ’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’。下列选项哪个是得到的结果? A.Oracle 返回结果 0 C.Oracle 返回结果 NULL B.Oracle 返回结果 EMPTY D.Oracle 返回错误结果 17. 要从 ORDERS 表中取得数据,其中包括三个列 CUSTOMER、ORDER_DATE 与 ORDER_AMT。可 以用下列哪个 where 子句查询 ORDERS 表,取得客户 LESLIE 超过 2700 的订单? 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.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 3 4 5 floor(-97.342), round(-97.342), trunc(-97.342) from dual; 下列哪个函数不返回结果-97? A.ceil() B.floor() C.round() D.trunc() 22. SQL *Plus 中发出的下列语句: SQL> select ceil(256.342), 2 3 4 5 floor(256.342), round(256.342), trunc(256.342) 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 返回什么?
A.14 B.-14 C.168 D.-168 24. 你要在 Oracle 中使用日期信息的格式掩码。下列哪种情形不适合这个格式掩码? A . to_date() D.to_number() C . alter session set nls_date_format B . to_char() 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 3 4 from emp e,addr a where e.empno = a.empno(+) 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 ---------- 578-X PRODUCT.NAME ------------ WIDGET TENNESSEE WIDGET BOX.LOCATION ------------ IDAHO 456-Y 下列哪个选项是产生这个结果的查询类型? C.右外连接 B.左外连接 A.全外连接 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) from dmp a,dept b where a.deptno = b.depton group by a.deptno,a.job,b.loc 2 3 4 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 4 5 6 where empno in ( select empno from expense 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) ( select sal from emp group by deptno,job having avg(sal)> 2 3 4 5 6 7 上述语句使用下面哪种子查询? B.多行子查询 from emp where ename = ‘MARTIN’ ); A.单行子查询 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 3 4 5 6 from emp, dept where emp.deptno = dept.deptno group by dname having avg(sal) > ( select avg(sal)*1/4 from emp,dept
分享到:
收藏