Oracle笔试题-参考答案

更新时间:2024-01-27 19:43:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

f

(考试时间:180分钟 试卷满分:300分)

注意事项:

1.答卷前,请关闭手机,禁止使用设备对试卷进行拍照。 2.请务必将个人相关信息填写在相应位置。 3.请将答案填写在相应位置,否则无效。 第一部分 单选题(每题2分,满分80分)

做题时,先将答案标在试卷上,录音结束后,你将有两分钟的时间将试卷上的答案转涂到答题卡上。

一、单选题(每题2分 * 40 = 80分)

1. 使用Oracle数据库,必须启动哪个服务( )

A.OracleHOME_NAMETNSListener B.OracleServiceSID C.OracleMTSRecoveryService

D.OracleJobSchedulerSID

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

C.OracleHOME_NAMEAgent D.OracleHOME_NAMEHTTPServer 3. 用二维表结构表达实体集的模型是( )

A.概念模型 B.层次模型 C.网状模型 D.关系模型 4. Oracle 11g 是基于( )的

A.关系型 B.文件系统 C.层次型 D.网络型

5. ( )代表了数据库中最小粒度的逻辑数据存储层次。 A.盘区 B.表空间 C.数据块 D.数据文件

6. 你使用下列命令连接数据库:sqlplus scott/trigger@abc.com:1522/orcl.目标数据库是哪一个?( )

A. abc.com B.tiger C. orcl D. scott

7. 设有一个关系:DEPT(DNO,DNAME,LOC),如果要找出倒数第三个字母为W,并且至少包含4个字母的DNAME,则查询条件子句应写成WHERE DNAME LIKE ( ) A.‘_ _ W _ %’ B.‘_ % W _ _’ C. ‘_ W _ _’ D. ‘_ W _ %’ 8. 下列解锁scott账户的命令正确的是() A、update user scottaccount unlock; B、alter user scott account unlock; C、alter user scott unlock;

9. having , where , group by 的正确执行顺序是( ) A、having,where,group by

B、group by,having,where C、where,having,group by D、where ,group by,having

10. 分析下面两个SQL语句,选项中说法正确的有( ) SELECT last_name, salary , hire_date FROM EMPLOYEES

ORDER BY salary DESC;

SELECT last_name, salary , hire_date FROM EMPLOYEES ORDER BY 2 DESC;

A、两个SQL语句的结果完全相同 B、第二个SQL语句产生语法错误

C、没有必要指定排序方式为desc,因为默认的排序方式是降序排序

D、可以通过为第二个SQL语句的salary列添加列别名来使两个SQL语句得到相同的结果 注意:Order by group by 后 跟数字,代表select后的字段的位置

11. 数据库设计中用关系模型表示实体和实体之间的联系。关系模型的结构是( )。 A、层次结构 B、二维表结构 C、网状结构 D、封装结构

12哪个SQL语句生成计算列SALARY * 12的别名—年薪?( ) A、

SELECT ename, salary*12 'Annual Salary' FROM employees; B、

SELECT ename, salary*12 \Salary\FROM employees; C、

SELECT ename, salary*12 AS Annual Salary FROM employees; D、

SELECT ename, salary*12 AS INITCAP(\SALARY\FROM employees 别名中间有空格必须双引号 函数INITCAP()是将每个单词的第一个字母大写,其它字母变为小写返回. 单词由空格,控制字符,标点符号等非字母符号限制. 13. 并发操作会带来哪些数据不一致性?( ) A、丢失修改、不可重复读、读脏数据、死锁 B、不可重复读、读脏数据、死锁 C、丢失修改、读脏数据、死锁 D、丢失修改、不可重复读、读脏数据 14. 对于满足SQL92标准的SQL语句:SELECT foo,count(foo) FROM pokes WHERE foo>10 GROUP BY foo HAVING ORDER BY foo,其执行的顺序应该为( )。 A、FROM->WHERE->GROUP BY->HAVING->SELECT->ORDER BY B、FROM->GROUP BY->WHERE->HAVING->SELECT->ORDER BY C、FROM->WHERE->GROUP BY->HAVING->ORDER BY->SELECT D、FROM->WHERE->ORDER BY->GROUP BY->HAVING->SELECT 15. 使用哪个SELECT语句从系统日期中提取年份并以“1998”格式显示? A、 SELECT TO_CHAR(SYSDATE,'yyyy') FROM dual; B、

SELECT TO_DATE(SYSDATE,'yyyy') FROM dual; C、

SELECT DECODE(SUBSTR(SYSDATE, 8), 'YYYY') FROM dual; D、

SELECT DECODE(SUBSTR(SYSDATE, 8), 'year') FROM dual; E、

SELECT TO_CHAR(SUBSTR(SYSDATE, 8,2),'yyyy') FROM dual; 16. 观察下表(EMP)下列SQLSQL语句正确的是( )

注意:oracle 两个时间相减默认的是天数 HIREDATE+10 是加10天 To_date() 第一个参数是字符串类型 To_char() 第一个参数是日期类型 A、 SELECT ENAME,to_date(SYSDATE-HIREDATE,'yyyy-mm-dd') FROM EMP; B、

SELECT ENAME,to_date(HIREDATE+10,'yyyy-mm-dd') FROM EMP; C、

SELECT ENAME,to_char(HIREDATE-10,'yyyy-mm-dd') FROM EMP; D、

SELECT ENAME,to_char(SYSDATE-HIREDATE,'yyyy-mm-dd') FROM EMP; 17. 观察下表(EMP),本月老板要在所有员工原有奖金的基础上多发500元的奖金,查询出所有员工姓名以及他的奖金,下列SQL语句能够满足该需求的是( )

1、nvl(value1,value2) 这个函数的意思是如果value1的值为null,那么函数返回value2的值 ,如果value1不为空,那么就返回value1的值。 2、nvl2(value1,value2,value3) 这个函数的意思是如果value1的值为null 函数返回value3 否则函数返回value2 也就是说函数永远不会返回value1 A、 SELECT ENAME,COMM+500 FROM EMP; B、

SELECT ENAME,NVL(COMM,0)+500 FROM EMP; C、

SELECT ENAME,NVL(COMM+500,0) FROM EMP; D、

SELECT ENAME,NVL2(COMM,0)+500 FROM EMP; 18. 客表(customers)中有一存储顾客姓名的字段(customerName),现在想显示\欢迎customerName光临小店\的字样,下列SQL语句能够满足该需求的是() A、

SELECT \欢迎\光临小店\FROM customers; B、

SELECT '欢迎'||customerName||'光临小店' FROM customers; C、

SELECT '欢迎'|customerName|'光临小店' FROM customers; D、

SELECT \欢迎\光临小店'\customers; 19. Which statement shows the maximum salary paid in each job category of each department?( )

A、Select dept_id,job_cat,max(salary) from employees where salary>max(salary); B、Select dept_id,job_cat,max(salary) from employees group by dept_id,job_cat;

D、SELECT DISTINCT(class), AVG(score) FROM test WHERE class<3 14. 观察STUDENT表的表结构: STD_ID NUMBER(4) COURSE_ID VARCHAR2(10) START_DATE DATE END_DATE DATE

下面聚合函数的使用正确的有?(请选出两项) A、SUM(start_date) B、AVG(start_date) C、COUNT(start_date) D、AVG(start_date, end_date) E、MIN(start_date) F、MAXIMUM(start_date)

MAX(column_name)、MIN(column_name)、COUNT(column_name):它们的聚合对象可以是日期(DATE)、字符(VARCHAR/VARCHAR2)、数值类型(NUMBER); SUM(column_name)、AVG(column_name):它们的聚合对象只能是数值(NUMBER) 15. 哪些字段适合建立索引?( ) A、在select子句中的字段 B、外键字段 C、主键字段

D、在where子句中的字段

三、填空(每题4分 * 15 = 60分)

1、添加约束SQL语法:alter Table table add[Constraint cname] type(column) 2、修改表结构SQL语法:

添加列:alter table 表名 add (列名 数据类型 [,列名 数据类型] ...); 修改列:alter table 表名 modify (列名 数据类型 [,列名 数据类型] ...); 3. 授权的Sql关键字grant,收回权限的Sql关键字revoke。

4、在oracle中,权限分为2类,分别为:系统权限、对象权限;(3类要加上角色) 5、连接的3种类型,分别为FULL/outer JOIN、inner join、cross join交叉连接; 6、标谁的SQL语句类型可分为:、 DQL、DML、DCL、DDL; 7、序列包含两个伪例可分为:、nextval、currval。

8、创建索引使用:create index indexName on tname(value)、创建视图使用: create view emp-view as select employee-id,last-name,salary from tname

9、事务的4个特性:ACID特性原子性( Atomicity )、一致性( Consistency )、隔离性( Isolation )和持久性( Durability )。

10、Oracle数据库常用数据类型:char varchar number(p,s) date timestamp(时间戳) clob blob rownum

在表中_rowid_____伪列记录了行的物理地址,而__rownum____伪列是对行的动态编号 四、SQL编程(每题5分 共80分)

1.说明:以下题,如无特别说明,以scott账号下的4张表(EMP,DEPT,SALGRADE, BONUS)为操作对象 1、列出所有办事员的姓名、编号和部门 2、找出部门10中所有经理和部门20中的所有办事员的详细资料 3、找出部门10中所有经理、部门20中所有办事员,既不是经理又不是办事员但其薪金>=2000的所有雇员的详细资料 select * from emp where deptno =10 and job='MANAGER' UNION select * from emp where deptno =20 and job='CLERK' UNION SELECT * FROM EMP WHERE JOB NOT IN('MANAGER' ,'CLERK') AND SAL>=2000 4、找出早于25年之前受雇的雇员 SELECT * FROM EMP where (SYSDATE-HIREDATE)/365>25 5、显示所有雇员的姓名和加入公司的年份和月份,按雇员受雇日所在月排序,将最早年份的项目排最前面 select ename,to_char(hiredate,'yyyy'),to_char(hiredate,'MM') FROM EMP ORDER BY to_char(hiredate,'yyyy'),to_char(hiredate,'MM') 6、以年、月和日显示所有雇员的服务年限 SELECT trunc((SYSDATE-HIREDATE)/365)||'年', trunc(mod((SYSDATE-HIREDATE),365)/30)||'月', trunc(mod(mod((SYSDATE-HIREDATE),365),30))||'日' FROM EMP 7、列出从事同一种工作但属于不同部门的雇员的 8、列出分配有雇员数量的所有部门的详细信息, select * from dept,( select deptno from emp group by deptno) t where dept.deptno=t.deptno 9列出每个部门的信息以及该部门中雇员的数量 select * from dept,( select deptno,count(*) num from emp group by deptno )t where dept.deptno=t.deptno 10列出至少有一个员工的所有部门 select * from dept,( select deptno from emp group by deptno) t where dept.deptno=t.deptno 11列出各个部门的MANAGER(经理)的最低薪金 select MIN(SAL) from emp where job='MANAGER' GROUP BY DEPTNO 12、复制emp表结构及数据(备分表名称为empback); create table empback as select * from emp 13、创建一张与emp表结构一样的表(不需要emp表数据)、 create table empback as select * from emp where null=null 14、查询emp表中第31条到40条之间的数据(分页) select * from ( select rownum n,t.* from ( select * from emp ) t where rownum <=20) where n>=10 15 已知表tabA结构如下,删除表tabA中属性t_name值重复的行 Create table tabA( t_id number, t_name varchar2(20) ) Insert into tabA (‘1’,’a); Insert into tabA (‘2’,’a); Insert into tabA (‘3’,’b); Insert into tabA (‘4’,’b); Insert into tabA (‘5’,’c); delete from tabA where t_id not in( select min(t_id) from tabA group by t_name having count(*)>=2 ) and t_name in( select t_name from tabA group by t_name having count(*)>=2 ) 16、显示雇员表中雇员的姓名,职务,薪水,部门表中的部门名称、地址以及工资等级表中的工资等级 select * from emp e,dept d,salgrade s where e.deptno=d.deptno and e.sal between losal and hisal

2.某学校要对学生成绩进行计算机管理。该学校有若干学生,每个学生有学号(sno)、班级(sclass)、姓名(sname)、性别(ssex)、出生日期(sbirthday)、地址(saddr)。开设的课程

需要管理课程编号(cno)、课程名称(cname)、学分(credit)和学生选修该课程后的成绩(score)等信息。该学校规定:一个学生可以有选修多门课程,一门课程可以有多名学生选修。

(1)画出此管理系统的ER模型。

(2)将以上ER模型转化为关系模式,包括主键、外键。 学生表(学号 班级 姓名 性别 出生年月 地址) 主键:学号 课程表(课程编号 课程名称 学分)主键:课程编号

选课表(学号 课程编号 成绩)主键:学号 课程编号 外键:学号→学生表.学号 课程编号→课程便.课程编号

(3)试用SQL语句表示以下数据编辑:

a)将新生“张三”插入学生表(其它属性自设); b)删除学号为“0001”的学生的选课信息; 删除delete选课表即可。

如果删除“001”学生,要先删除子表选课表,再删除学生表。 c)将所有选修了“数据库”课程的学生成绩提高5%。

五、简答题(共20分)

1、简述数据库三大范式,并举例说明 ①列不可再分②非主键列完全依赖于主键(表中所有列都必须依赖主键)③非主键列不依赖于其他非主属性(每列只与主键直接相关) 2、简述Oracle的五种约束条件

默认主外非空唯一①default②primary key③not null④unique⑤foreign key 3、请说明你有哪些办法提高SQL执行效率? 尽量全值匹配,索引多列时遵循左前缀法则; 不在索引上做计算、函数、类型转换操作; select子句中避免使用“*”;

避免使用耗费资源的操作:distinct/union/minus/intersect/order by; 范围条件后索引失效; 尽量使用覆盖索引; 慎用不等于;

Like查询注意以通配符开头索引失效; Or改union效率高; Exist替换in;

4、请简介数据库事务的四个特性。 ACID:

原子:所包含的操作,要么全部成功,要么全部失败回滚;

一致:执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态; 隔离:一个事务的执行不能干扰其他事务; 持久:事务一旦提交,改变为永久。

5、简述DML DDL DQL DCL分别包含哪些具体的操作。 DML:upadate/insert/delete DQL:select/from/where

DDL:create/table/view/sequence/index/produce/function/syn/cluster DCL: grant/rollback/commit

本文来源:https://www.bwwdw.com/article/6ynw.html

Top