ImageVerifierCode 换一换
格式:DOC , 页数:20 ,大小:343KB ,
资源ID:30481      下载积分:5 金币
已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(ORACLE数据库习题.doc)为本站会员(奥沙丽水)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(发送邮件至doc331@126.com或直接QQ联系客服),我们立即给予删除!

ORACLE数据库习题.doc

1、1. ORACLE数据库物理结构包括以下三种文件,以下不属于的是()A. 系统文件B. 日志文件C. 数据文件D .控制文件2. 下列哪个命令是用于 ORACLE中数据导出的()A . expB . impC.in putD.output3. ()是用于控制数据访问的语言。A. DMLB. DDLC.DCLD.DLL4. NULL表示什么()A . 0B .空格C .值D .没有值5. 下面四个语句中哪一个是正确的?()A . SELECT * , ENAME FROM EMP;B . DELETE * FROM EMP;C . SELECT DISTINCT EMPNO ,HIREDA TE

2、 FROM EMP;D . SELECT ENAME|SAL AS “name” FROEMIP ;6. 假定有一张表用户表 users,其中一身份证字段ID_card。为了维护数据的完整性,在设计数据库时,最好对 ID_card字段添加约束,请问应该添加什么约束()A. primary keyB . check C . defaultD . not n ull7. 下面哪一个like命令会返回名字象 HOTKA的行?()A . where en ame like,HOT%B . where en ame like ,H_T%C . where en ame like ,%TKA_D. whe

3、re en ame like ,%TOK%8. ()操作符只返回由第一个查询选定但是没有被第二个查询选定的行。A. UNIONB. UNION ALLC. INTERSECTD. MINUS9 . EMPLOYEE表的结构如下:EMPLOYEE_IDNUMBER PRIMARY KEYFIRST_NAMEVARCHAR2(25)LAST_NAMEVARCHAR2(25)HIRE DATEDATE考虑下面的语句。1. CREATE table new_emp (employee_id NUMBER, name VARCHAR2(30); 2.IN SERT INTO new_emp SELECT

4、 employee_id,last_ name from employees; 3.Savepo int s2;4. DELETE from n ew_emp;5. ROLLBACK to s2;6. DELETE from n ew_emp where employee_id=180;7. UPDATE new_emp set name= James;8. ROLLBACK to s2;9. UPDATE new emp set name = James WHERE employee id=180;10. ROLLBACK;完成本次事务处理以后,以下说法正确的有r-)A. 表中没有行。B.

5、有一个姓名为 James的员工。C. 不能多次回滚到相同的保存点。D. 由于已经删除了员工ID180,因此最后一次更新未更新任何行。10. 以下运算结果不为空值的是(A. 12+NULLB. 60*NULLC. NULL | ?NULL?D . 12/ (60+NULL )11. 若当前日期为?2&5月-06?以下()表达式能计算出5个月后那一天所在月份的最 后一天的日期。A . NEXT_DAY(ADD_MONTHS(?28 -5 月-06?,5)B. NEXT_DAY(MONTHS_BETWEEN(?28 -5 月-06?,5)C. LAST_DA Y(MONTHS_BETWEEN(?28

6、 -5 月-06?,5)D . LAST _DAY(ADD_MONTHS(?28 -5 月-06?,5)12.(A.)子句用于列出唯一值。uniqueB . distinetC.order byD. group by13.哪一个是子查询执行的顺序()A.最里面的查询到最外面的查询B.最外面的查询到最里面的查询C.简单查询到复杂查询D.复杂查询到简单查询14.下面哪一个语句可以使用子查询()A.SELECT语句B.UPDATE语句C.DELETE语句D.以上都是15.如果表DEPT包含3条记录,现在用如下命令对其进行修改,ALTER TABLE DEPT ADD ( COMP NUMBER (4

7、) NOT NULL );请问下面哪一个说法是正确的()A 该语句在表的最前面插入一个非空列B 该语句在表的最后插入一个非空列C.该语句执行完成后,应当立即执行 COMMIT语句,以确保更改生效D .该语句将产生错误16下列哪个是组合主键的特征()A .每列有唯一的值,但不是 NULL值B .组合有唯一的值,并且其中每列没有NULL值C.组合的第一列和最后一列有唯一值D .组合的第一列和最后一列有唯一值,但没有NULL值17. 当删除父表中的数据时,在CREATE TABLE语句的外键定义中指定的()选项删除子表中的数据。A . ON TRUNCATE CASCADEB. ON DELETE

8、CASCADEC. ON UPDA TE CASCADED . A和C都是18. 视图可以用于()A .限制对表中指定列的访问B .限制对表中行的子集的访问C. A和B都是D. A和B都不是19. 语句 SELECT * FROM dept WHERE NOT EXISTS (SELECT * FROM emp WHEREdept no=dept.dept no)执行后的结果为()A .只显示存在于 EMP表中的部门全部信息。B. 只显示不存在于 EMP表中的部门全部信息C. 未返回任何数据D .显示DEPT表中的全部信息20. 已创建序列 S1,若当前值为 2,先执行3次S1.CURRVAL

9、再执行3次S1.NEXTVAL,最后S1的值是()A . 3B . 4C. 5D. 621. 数据库中有两个用户scott和myuser,物资表wz是属于myuser用户的,但当前用户是scott,要求查询物资表 wz (wno , wname, wtype , wunit )物资单位 wunit列为null 的记录,取结果的前 5条记录显示,以下正确的SQL语句是()A . select*from scott.wz where wunit is null and rownum5 ;B. select*from myuser.wz where wunit = null and rownum5

10、 ;C. select*from myuser.wz where wunit is null and rownum6 ;D. select*form scott.wz where wunit is null and rownum=100 AND =100AND order_total5;B. SELECT ENAME FROM EMP1 WHERE HIRE_DATE-SYSDATE5;C. SELECT ENAME FROM EMP1 WHERE (SYSDATE-HIRE_DATE)/3655;D. SELECT ENAME FROM EMP1 WHERE (SYSDATE-HIRE_DA

11、TE)*3655;20. 在Oracle中,使用下列的语句:CREATE PUBLIC SYNONYM parts FOR Scott.i nven tory;完成的任务是()。(选择一项)A. 需要给出schema被除去的对象名B. 指定了新的对象权限C. 指定了新的系统权限D. 给Scott.inventory对象创建一个公用同义词 parts21. 在Oracle中,有一个名为seq_id的序列对象,假定此时查看seq_id序列当前值显示为 100,那么执行下面的 sqlinsert into test(id, name) values(seq_id.NEXTVAL, tom);很不幸,

12、这个in sert 没有执行成功,随后马上执行rollback ,问:此时查看 seq_id序列当前值显示为()“选择一项”、100、不能确定SQL命令是()“选一项”A. 99BC 101D22. PL/SQL块中不能直接使用的A. SELECTB. INSERTC. UPDATED. DROP23. 在PL/SQL块中,以零作除数时会引发下列()异常。(选择一项)A. VALUE_ERRORB. ZERO_DIVIDEC. VALUE_DIVIDED. ZERO_ERROR24. 在Oracle中,有一个名为seq的序列对象,以下语句能返回序列值但不会引起序列值增加的是()(选择一项)A.

13、 select seq.ROWNUM from dual;B. select seq.NEXTVAL from dual;C. select seq.CURRVAL from dual;D. select seq.CURIVAL from dual;25当 Select Into 语句的返回没有数据时,将引发下列哪个异常?()选择一项 A. No_Data_FoundB. To_Many_RowC. Too_Many_RowsD. Invalid_Number26创建序列时,若未指定Cycle 选项,则当前值大于 MaxValue 时将( )“选择一项”A. 从 MinValue 重新开始循环

14、B. 重复使用 MaxValue 值C. 执行出错D. 使用随机值27. PL/SQL块中哪几部分是可选的()“选择二项”A. DeclareB. BeginC. ExceptionD. 以上均是28. 在Oracle中,PL/SQL块中定义了一个带参数的游标:CURSOR emp_cursor(dnum NUMBER) IS SELECT sal, comm FROM emp WHERE deptno = dnum;那么正确打开此游标的语句是()(选择两项)E. OPEN emp_cursor(20);F. OPEN emp_cursor FOR 20;G. OPEN emp_cursor

15、USING 20;H. FOR emp_rec IN emp_cursor(20) LOOP END LOOP;29. 在 Insert 触发器中可使用的引用有( )“选一项”A. newB. OldC. : UpdateD. : New和:Old30. 下面哪些是过程中的有效参数模式?()“不定项选择”A.IN B. INOUT C.OUTD. OUT IN1. 检索部门编号、部门名称、部门所在地及其每个部门的员工总数。select d.deptno,d.dname,d.loc,count(*) from emp e,dept d where e.deptno=d.deptno group

16、by d.deptno,d.dname,d.loc;2. 检索员工和所属经理的姓名。select e.ename 雇员 ,m.ename 经理 from emp e,emp m where e.mgr=m.empno;3. 检索工资等级处于第四级别的员工的姓名。select e.ename from emp e inner join salgrade s on (e.sal between s.losal and s.hisal) where s.grade=4;4. 检索工资等级高于 smith 的员工信息。select * from emp e join salgrade s on (e.

17、sal between s.losal and s.hisal) where s.grade(select distinct s.grade from emp e join salgrade s on (select sal from emp where ename=SMITH) between s.losal and s.hisal);5. 检索 30部门中 1980年 1月份之前入职的员工信息。显示:员工号、员工名、部门号,部 门名、入职日期。select empno,ename,d.deptno,d.dname,hiredate from emp,dept d where emp.dep

18、tno=d.deptno and d.deptno=30 and hiredateto_date(1980-01-01,yyyy-mm-dd) ;6. 检索雇员的雇佣日期早于其经理雇佣日期的员工及其经理姓名。select e.ename 雇员 ,m.ename 经理 ,e.HIREDATE 雇员的雇佣日期 ,m.hiredate 经理雇佣日期 from emp e,emp m where e.mgr=m.empno and e.hiredate=3 and num=8;14. 检索与 30 部门员工工资等级相同的员工姓名与工资。select * from emp e join salgrade

19、 s on (e.sal between s.LOSAL and s.HISAL) where s.grade=(select distinct s.grade from emp e join salgrade s on (select avg(sal) from emp where deptno=30) between s.LOSAL and s.HISAL);15. 求分段显示薪水的个数。显示结果 如下:DEPTNO 800-2000 2001-5000305120231012select t1.deptno, 800-2000, 2001-5000 from (select deptno

20、 , count(*) as 800-2000 from emp where sal between 800 and 2000group by deptno ) t1join (select deptno , count(*) as 2001-5000 from emp where sal between 2001 and 5000group by deptno) t2on t1.deptno = t2.deptno ;16. 用 PL/sql 实现输出 7369 号员工的姓名。-用 PL/sql 实现输出 7369 员工的姓名;set serveroutput on; - 将 sql*plu

21、s 的输出功能开启:= 赋值declare - 声明部分var_empno number(4) := 7369 ;-声明一个变量var_empno ,并给赋值,用var_name varchar2(10);-声明一个变量 var_namevar_sal number(9,2);begin- 执行部分的开始select ename , sal into var_name , var_sal from emp where empno = var_empno; dbms_output.put_line(var_empno | 的名字是 : | var_name);-输出语句dbms_output.p

22、ut_line(var_empno | 的工资是 : | var_ sal );- 输出语句end;-执行部分的结束, end 后面要加 ;执行结果为:7369 的名字是 : SMITH PL/SQL 过程已成功完成。17. 编写一 sql 语句,将 7369 号员工的入职日期改为 1997/7/1 ,工资提高 800 ,其他信息 不变。update emp set hiredate=to_date(1997/7/1,yyyy-mm-dd),sal=sal+800 where empno=7369;18. 假定现在有一张表,表名为T_emp,其表结构和现有的emp表结构完全相同,但是T_emp

23、 中没有记录,请编写一 sql语句,实现将emp中部门编号为20的员工信息添加到 T_emp中。19. 对所有员工,如果该员工职位是 MANAGER并且在DALLAS工作那么就给他薪金加 15%; 如果该员工职位是 CLERK并且在NEW YORK:作那么就给他薪金扣除 5% ;其他情况不作处 理。要求:使用游标或函数编程实现。set serveroutput on;declarecursor c1 is select * from emp;c1rec c1%rowtype;v_loc varchar2(20);beginfor c1rec in c1 loopselect loc into

24、v_loc from dept where deptno = c1rec.deptno;if c1rec.job = MANAGER and v_loc = DALLAS thenupdate emp set sal = sal * 1.15 where empno = c1rec.empno;elsif c1rec.job=CLERK and v_loc = NEW YORK thenupdate emp set sal = sal * 0.95 where empno = c1rec.empno;elsenull;end if;end loop;end;20. 对直接上级是 BLAKE 的

25、所有员工,按照参加工作的时间加薪: 1981 年 6 月以前入职的 员工加薪 10、 1981年 6 月以后入职的员工加薪 5。 要求:使用游标或函数编程实现。declarecursor c1 is select * from emp where mgr = (selectempno from emp where ename=BLAKE); - 直接上级是 BLAKE 的所有员工 c1rec c1%rowtype;beginfor c1rec in c1 loop if c1rec.hiredate =2000 的所有雇员的详细资料select * from emp where (deptno=10 and job=upper(manager) or (deptno=20 and job=u

宁ICP备18001539号-1