欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    ORACLE数据库习题.doc

    • 资源ID:30481       资源大小:343KB        全文页数:20页
    • 资源格式: DOC        下载积分:5
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录 微博登录
    二维码
    微信扫一扫登录
    下载资源需要5
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    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


    注意事项

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




    宁ICP备18001539号-1

    三一文库
    收起
    展开