(一)考核方式:本课程采用平时考核、实践考核和理论考核相结合的考试方式。
(二)命题依据:本课程依据课程的教学大纲要求命题,所使用的文字教材是《Oracle Database 10g 实用培训教程》,赵伯山、郭飞宇编著,清华大学出版社。
(三)课程总成绩的记分方法:平时考核成绩占总成绩的20%,实践考核成绩占总成绩的30%,期末考试成绩占总成绩的50%。
(四)形成性考核的形式及要求:平时考核主要考核学生平时作业成绩及考勤情况,实践考核主要考核学生实验操作和实验报告的完成状况。
(五)终结性考核的要求及形式 1.考核要求
考核学生掌握和运用数据库基本概念和知识建立和使用数据库的能力。具体考核要
求分为以下3个层次:
了解:理解数据库系统中的一些基本概念。 掌握:掌握数据库系统中的一些基本知识、Oracle数据库管理系统的常用操作、Oracle SQL语言,Oracle环境下权限设置及角色的知识, 对表和数据的操纵、多种不同方式的查询设计、 PL/SQL程序设计,存储程序(过程、函数、包与触发器)的设计。 熟练掌握:能够根据所给定的知识点分析问题和解决问题。
2.组卷原则
依《Oracle 数据库》教学大纲规定的要求,按掌握、理解、了解三个层次命题。以大纲中所要求的“掌握内容”为主,约占60%,“理解内容”为辅,约占30%,了解的内容较少,约占10%。
试题覆盖面广,并突出重点。 3.试题类型及试卷结构
试题题型有单选、填空、问答、操作(根据要求写Oracle SQL命令)、编程题。其中较容易和较难试题各占15%。
4.考试形式
终结性考试采用闭卷笔试,答题时限120分钟。
二、课程考核内容和要求
第一章 Oracle Database 10g世界 [考核知识点]
数据库的基本特点, Oracle database 10g 体系架构。 [考核要求]
1.了解:数据库概念、体系架构、数据库中的对象、用户和权限、数据库管理员、关键网格技术;
2.理解:数据概念、数据类型。 3.掌握:数据库概念、数据类型。 第二章 用户和权限 [考核知识点]
用户管理、权限管理、角色管理 [考核要求]
1.了解:同义词管理;
2. 理解:用户管理、系统权限管理、对象权限管理、角色管理。 3.掌握:用户管理、角色管理。 第三章 表 [考核知识点]
创建表、修改表结构、约束与表的删除 [考核要求]
1
1.了解:更改表名称、注释表、删除表; 2.理解:ER图、Press示例;
3.掌握:创建表、修改表结构、约束。 第四章 操纵数据 [考核知识点]
插入、修改、删除、合并数据 [考核要求]
1.了解:闪回查询、事务;
2.理解:更新数据、删除数据; 3.掌握:插入数据、合并操作。 第五章 SQL*Plus [考核知识点]
SQL*Plus常用命令,格式化查询结果,脚本 [考核要求]
1.了解:SQL*Plus缓冲区、脚本;
2.理解:SQL*Plus的运行环境、变量;
3.掌握:SQL*Plus命令、格式化查询结果。 第六章 检索数据世纪 [考核知识点]
检索单表数据、过滤数据、检索多表数据 [考核要求]
1.理解:排序数据;
2.掌握:检索单表数据、过滤数据、检索多表数据。 3.检索单表数据、过滤数据、检索多表数据。 第七章 使用函数 [考核知识点]
字符函数、数学函数、转换函数、正规表达式函数、合计函数 [考核要求]
1.理解:使用分组技术、使用正规表达式函数。
2.掌握:使用字符函数、使用数学函数、使用转换函数、使用合计函数。 第八章 日期和时间 [考核知识点]
转换日期数据、日期和时间函数、时区、时戳、时长。 [考核要求]
1.了解:两位数字年和四位数字年; 2.理解:设置默认的日期格式;
3.掌握:转换日期数据、日期和时间函数 第九章 子查询 [考核知识点]
单行子查询、多行子查询、多列子查询、关联子查询、嵌套子查询。 [考核要求]
1.理解:子查询的概念和类型;
2.掌握:单行子查询、多行子查询、多列子查询、关联子查询、嵌套子查询;第十章 集合查询和层次查询 [考核知识点]
集合查询、层次查询、情景查询。 [考核要求]
1.理解:翻译函数。
2.掌握:集合查询、层次查询、情景查询。
2
第十一章 分析查询 [考核知识点]
窗口函数、制表函数。 [考核要求]
1.了解:检索当前行的周围行、等级函数、线性回归函数、分析函数的性能分析; 2.掌握:分析查询、窗口函数、制表函数; 第十二章 PL/SQL [考核知识点]
PL/SQL概述、变量和数据类型、条件结构和循环结构、管理存储程序。 [考核要求]
1.了解:游标、异常;
2.掌握:PL/SQL编程、变量和数据类型、管理存储程序(函数、过程、包)。 第十三章 管理其他对象 [考核知识点]
序列、 索引、 视图、 对象、 集合 [考核要求]
1.理解:索引、对象。
2.掌握:序列、视图、集合。 第十四章 XML [考核知识点]
在数据库中存储XML数据, 检索和更新XML数据 [考核要求]
1.了解:XML。
2.理解:基于数据库中的数据生成XML数据、在数据库中存储XML数据、检索和更新XML数据、创建基于XML数据的视图; 第十五章 使用大对象 [考核知识点]
创建和使用大对象 [考核要求]
1.了解:提高大对象使用效率;
2.理解:大对象的特点和类型、创建和使用大对象。 第十六章 性能调整与优化 [考核知识点]
优化查询语句技术、绑定变量技术、 explain plan、 autotuace [考核要求]
1.了解:绑定变量技术、explain plan、autotuace; 2.理解:概述、优化查询语句技术;
三、《Oracle 数据库》复习题
一、选择题
1.( )是Oracle服务器在启动期间用来标识物理文件和数据库结构的二进制文件。 A控制文件 B参数文件 C数据文件 D可执行文件 2.( )可以自动执行操作的存储对象。
A.程序包 B.函数 C.过程 D.触发器
3. 用于在启动实例时配置数据库,确定Oracle Database 10g的运行环境文件是( ).
A.参数文件 B.数据文件 C.可执行文件 D.控制文件
4. 下面那一个数据字典视图包括了当前对象有访问权限的所有表对象的信息( ).
A.user_tables B.all_tables C.user_tab_columns D.all_tab_columns
3
5. 下面是有关空值特点的描述,请问那个描述是正确的( )。
A.0 B.已知 C.空格 D.未知
6.当使用SQL*Plus创建PL/SQL等数据库对象出错时,希望查看详细的错误信息,必须使用( )命令发出请求。
A.prompt B.set C.show errors D.help
7. ( ) 判断下面语句,有什么作用?
GRANT delete ,update ON authors TO Press WITH GRANT OPTION;
A. 一个系统权限被授予用户Press B. 一个对象权限被授予用户Press C. 用户Press被授予在这个对象上的所有权限 D. 一个系统权限和一个对象权限被授予用户Press
8.下面的哪一个数据字典视图拥有角色名称,该角色拥有的系统权限,该角色能否授拥有的系统权限标志等信息 。
A.dba_user_privs B.sys_role_tab_privs_made C.role_sys_privs D.role_user_privs
9.在Oracle Database 10g系统中,可以使用下面哪一个数据字典视图查看有关某个用户对另外一个用户授予的权限.(B)
A,user_cal_privs_made B.user_tab_privs_made C. user_tab_privs_recd D. user_cal_privs_ recd
10. 设置报表页眉和页脚的命令是( ).
A.atitle命令和btitle命令 B.mtitle命令和ntitle命令 C.atitle命令和mtitle命令 D.ttitle命令和btitle命令 11. A.内连接 B.交叉连接 C.外连接 D.左连接 13. 在Oracle Database 10g系统中,限定子查询的嵌套层数可以是( ). A.5 B.255 C.36 D,25 14. 在PL/SQL存储程序中,主要包括三个部分,即( ). A.检索块、插入块和异常处理块 B.定义块、删除块和异常处理块 C.声明块、可执行块和异常处理块 D.结构块、循环块和处理块 15.下面是使用游标的步骤,请问那些顺序是正确的?( ) A.声明游标、打开游标、声明变量、取出数据、关闭游标 B.声明变量、声明游标、打开游标、取出数据、关闭游标 C.声明变量、取出数据、声明游标、打开游标、关闭游标 D.声明变量、取出数据、打开游标、声明游标、关闭游标 16.在Oracle Database 10g系统中,可以使用那一个命令执行创建过程的操作?( )。 A.create procedure B.create trigger C.create function D.create package body 17、如果希望更新authors表中的first_name列为非空,那么可以使用下面哪一个语句?() A、alter table authors add first_name not null B、alter table authors modify first_name not null C、alter table authors alter first_name not null D、alter table authors drop first_name not null 18、下面是有关主键约束的描述,请问哪些描述是正确的?() A、主键约束用于惟一的确定表中的每一行数据。 B、在一个表中,最多只能有两个主键约束。 C、主键约束只能由一个列组成。 D、主键约束不能由一个单列组成。 19.下面是有关merge语句的描述,请问哪些描述是正确的?( ) 4 A. 在merge 语句中,必须同时使用update子句和insert子句。 B. 在merge 语句中,必须同时使用select子句和insert子句。 C. 在merge 语句中,既可以单独使用update子句,又可以单独使用insert子句。 D. 在merge 语句中,既可以单独使用select子句,又可以单独使用insert子句。 20.在Oracle Database 10g系统中,可以使用( )完成闪回查询。 A.commit B.rollback C.savepoint D.dbms_flashback 21.下面是有关闪回查询的描述,请问哪些描述是正确的?( ) A.可以执行基于数据库的闪回查询。 B.可以执行基于表的闪回查询。 C.可以执行基于系统改变号的闪回查询。 D.可以执行基于用户的闪回查询。 22.使用show命令可以得到许多有用的信息,这些信息不包括( )。 A.SQL*Plus的环境设置 B.表的结构 C.创建PL/SQL代码的错误消息 D.init.ora参数 23.如果希望控制列的显示格式,那么可以使用下面( )命令。 A.show B.define C.spool D.column 24. 下面哪个函数不能用来删除指定字符串周围的字符?() A.ltrim()函数 B.trim()函数 C.lrtrim()函数 D.rtrim()函 数 25. 可以使用哪一个系统参数设置日期的格式( ) A.nls_language B.nls_date C. nls_time_zone D.nls_date_format 26.下面是有关时间和日期函数的描述,请问哪些描述是正确的?( ) A.使用months_between(x,y)函数计算两个指定日期 之间的月数 B.使用next_months(x,y)函数计算两个指定日期之间的月数 C.使用next_days(x,y)函数计算两个指定日期之间的月数 D.使用day_months(x,y)函数计算两个指定日期之间的月数 27.下面是有关子查询的描述,请问哪些描述是正确的?( ) A、在执行子查询的描述中,如果内查询的结果是空值,那么外查询的条件始终不会成立。 B、在执行子查询的描述中,如果内查询的结果是空值,那么外查询的条件可能不会成立。 C、在执行子查询的描述中,如果内查询的结果是空值,那么外查询的条件可能会成立。 D、在执行子查询的描述中,如果内查询的结果是空值,那么外查询的条件始终会成立 28.交集运算符是( ) A .intersect B.union C.set D.minus 29. 并操作运算符是( ) A. intersect B.union C.union all D.minus 30.下面是有关translate()函数的描述,请问哪些描述是正确的?( ) A.不可以执行对称加密操作。 B。可以执行解密操作。 C.可以执行对称非加密操作。 C。不能执行解密操作。 31. 在over(order by sale_ person rows between unbounded preceding and current row)字句中, 窗口的范围是( ) A.结果集中当前行 B.从当前行到结果集的最后一行 C.从结果集的开始到当前行 D. 当前的前一行和后一行 32.rank()和dense_rank()两个等级函数的差别是( )。 A rank()函数和dense_rank()都没有跳跃. B rank()函数和dense_rank()都有跳跃 C rank()函数有跳跃,dense_rank()没有跳跃 D rank()函数没有跳跃,dense_rank()有跳跃。 33. 哪一句可列出视图 PARTS_VU 的结构? A. DESCRIBE parts_vu B. DESCRIBE user_views 5 C. SELECT * FROM user_views WHERE lower(view) = parts_vu; D. SELECT * FROM user_objects WHERE lower(user_view) = parts_vu; 34.下面是有关while循环结构特征的描述,请问哪些描述是正确的?( ) A. 首先执行循环体,然后执行循环判断。 B. 首先执行循环判断,然后执行循环体。 C.循环次数是事先指定的。 D.循环次数是一个范围。 35.Login_denied是一个预先定义的异常,该异常的作用是( ) A.企图将一个字符串转换成一个无效的数字。 B.企图将一个数字转换成一个无效的字符串。 C.企图使用有效的用户名或口令连接数据库。 D.企图使用无效的用户名或口令连接数据库。 36.如果希望执行某个操作时,该操作本身不执行,而是去执行另外的一些操作,那么可以使用什么方式完成这种操作?( ) A.before触发器 B.after触发器 C.instead触发器 D.undo触发器 37.可以在视图定义中使用with check option 子句,该子句的作用是 A.视图中的数据是只读的。 B.可以任意通过视图修改基表中的数据。 C.可以有条件地通过视图修改基表中的数据。 D.不允许通过视图修改基表中的数据。 38.下面是引用authors_o get_name_by_id()方法的命令,请问那个命令是正确的? A.execute get_name_by_id(2); B.call a.get_name_by_id(2)from authors_o a; C.select authors_o get_name_by_id(2)from authors_o; D. select a.get_name_by_id(2)from authors_o a; 39. 下面的哪一种集合类型中的元素是排序的? A.变数组 B嵌套表 C字符串 D 关联数组 40.对于clob或nclob列,可以使用empty_clob()函数初始化。对于blob列,应该使用的初始函数是() A empty_clob() B empty_lob() C empty_blob() D empty_flob() 41.partition by list (msm_id)句子的含义是( ) A表示按照 msm_id 列的分店代号进行范围分区。 B表示按照 msm_id 列的分店代号进行列表分区。 C表示按照 msm_id 列的分店代号进行散列分区。 D表示按照 msm_id 列的分店代号进行组合分区。 42.在select语句的select子句中,count(case when gender = 'M’then 1 else null end)male auther的含义是:( ) A.表示统计女性作者的数量,并且列标题是male auther。 B.表示统计男性作者的数量,并且列标题是male auther。 C.表示统计女性作者的数量,并且列标题是1。 D.表示统计男性作者的数量,并且列标题是1。 43.在某个连接两个表的查询中,book id列出现在两个表中,price列只是出现在其中一个 表中,那么,以下哪一种说法是最合适的?( ) A.book id列应该使用完全限定名,而price列不应该使用完全限定名。 B.book id列不应该使用完全限定名,而price列应该使用完全限定名。 C.book id列和price列应该使用完全限定名。 D.book id列和price列不应该使用完全限定名。 6 44.最好使用哪一个脚本文件执行对plan table表的操作( )。 A.utlaplan.sql B. utltpls.sql C.utlxplan.sql D.utlxpls.sql 45.如果希望同是查询执行计划和统计信息,那么可以使用下面哪一个命令( )。 A.explan B.autotrace C.select D.plan table 二、填空题 1. __________负责向联机重做日志文件记录所有数据库中的已提交事务处理。 2.可以在任意模式中删除表的权限是__drop any table______。 3.如果希望锁定press/tsinghua用户,那么system/manager用户可以使用的命令是___________________。 4.在grant语句中,如果使用__________,那么表示该用户可以将这种系统权限转授给其它用户。 5.在_________数据字典视图中,包含了用户名称、系统权限和是否能转授权限的标志等信息。 6.在创建临时表时,如果使用__________选项,则表示插入表中的数据行将在会话结果时被删除。 7.用于唯一的确定表中的每一行数据约束是_________。 8.由于引用另一个表中的某个列或某几个列、或者本表中另一个或另几个列的一个列或几个列的约束是_______________。 9.__________是实体关系图的简称。 10.使用_______语句,可以一次插入一行数据。 11.在SQL语言中,删除表中数据的两种方式是___________和________________。 12.在Oracle Database 10g系统中,闪回查询是通过使用___________________程序包完成的。 13.__________是一个单元的的操作,这些操作要么全部成功,要么全部失败。 14.___________命令可以返回数据库所存储的对象的描述。 15.使用____column_______命令可以控制某个列的显示格式。 16.在select语句中为列临时定义的名称被称为_________________。 17.在PL/SQL程序中使用大对象数据,那么应该借助________________程序包中的许多方法。 18.在select语句中,可以使用____________子句进行分组操作。 19.声明变量的数据类型是与表(authors)中的某个列(author_id)的数据类型一致,其声明 的方式是:_____ ____________________________。 20.在grant语句中,如果使用_________________________,那么表示该用户可以将这种系 统权限转授给其它用户。 21. 如果希望将字符串中的road字符串更改为door,那么可以使用_____________________ 函数。 22.在创建表中,on commit子句控制临时表中数据的持续时间,其中,_________________选项 表示临时表中的数据将在会话结束时被删除。 23.如果既可以使用子查询完成操作,也可以使用连接查询完成操作,那么应该优先使用 ____________________ ,以便提高查询效率。 24.使用 _____________________语句将一个表中的部分数据或全部数据插入到另外一个表 中。这种操作被称为数据复制。 25.在SQL*Plus中,使用_________________命令可以把查询结果保存在一个文件中。 26.分组条件的子句是_________________。 27.__________________运算符可以简单地把两个查询结果合并起来,不考虑这两个查询结 果中是否有相同的数据。 28.使用________________函数可以求出字符串x的长度。 7 29.使用__________________函数可以在不同的分组上计算机各种累计值、移动值等 30.程序包包括两个部分,即_______________和___ ______________。前者包含了该程序包 的信息、过程和函数列表,后者包含了实际的代码。 三、操作题 设有二个表DEPT(部门表)、EMP(雇员表),表结构如下: emp员工表(empno员工号/ename员工姓名/job工作/mgr上级编号/sal薪金/comm佣金/deptno部门编号) dept部门表(deptno部门编号/dname部门名称/loc地点) 工资 = 薪金 + 佣金 表名 列名 数据类型 约束 表列名 数据类型 约束 DEPTNO Number(3) Primary 名 DEPT DNAME Varchar2(10) EMPNO Number(4) Primary LOC Varchar2(20) ENAME Varchar2(10) JOB Varchar2(10) EMP MGR Number(4) SAL Number(6,2) COMM Number(6,2) 分别写语句完成以下问题: DEPTNO Number(3) Foreign 1.列出至少有一个员工的所有部门。 2.列出薪金比“SMITH”多的所有员工。 3.列出所有员工的姓名及其直接上级的姓名。 4.列出所有工作是“CLERK”(办事员)的姓名及其部门名称。 5.在DALLAS工作的所有雇员名,雇员薪金及所在的部门。 6.列出各种工作的最低工资。 7.雇员SCOTT的管理者姓名 8.列出薪金高于公司平均薪金的所有员工。 9.与BLAKE同部门的所有雇员名,但不显示BLAKE。 10.列出所有员工的姓名、部门名称和工资。 四、编程题 1.根据上题的数据表,建立包EMP_PACKAGE,包含以下4个公用组件: (1)过程Delete_empno:根据给定的雇员编号删除该雇员。 (2)过程Add_dept:根据给定的d_no,d_name,d_loc 参数,在DEPT表中增加一条记录。(3)函数Get_sal:根据给定的雇员号返回雇员工资。 (4)函数Get_ename:根据给定的雇员编号返回该雇员的姓名。 根据上题的数据表,建立包EMP_PACKAGE,包含以下两个公用组件: 1.过程Change_sal:根据给定的雇员编号和新工资修改该雇员的薪金。 2.函数Get_sal:根据给定的雇员号返回雇员工资。 Create or replace package emp_package is Procedure change_sal(no number,salary number); Function get_sal(no number) return number; End; Create or replace package body emp_package is Procedure change_sal(no number,salary number) as Begin Update emp set sal=salary where empno=no; 8 End change_sal; Function get_sal(no number) return number As Salary emp.sal%type; Begin Select sal into salary from emp Where empno=no ; Return salary ; End get_sal; End emp_package 2.在DEPT表上建立触发器Tr_delete,当删除部门时级联删除EMP表的相应雇员。 Create or replace trigger Tr_delete After delete on DEPT for each row Begin Delete from emp Where emp.DEPTNO=:old. DEPTNO; End Tr_delete; 五、问答题 1.long、linesize 命令的作用分别是什么? Pagesize命令可以设置输出的每一页的大小(控制行的数量),从而控制每一页的数据量,默认为14。linesize命令可以设置每一行输出的字符数量的多少,默认为80。 2.简述权限与角色之间的关系。 权限和角色都是安全性机制的内容,两者的相同点是都允许用户执行某些操作。不同点是后者是前者的命令集合。权限之间不能授予,但角色之间可以授予。角色还可以拥有口令。因此,使用角色是比权限更高一层的安全管理机制。 3.什么叫闪回查询? 闪回查询是指恢复在表中误操纵了的数据。Oracle提供了基于时间的闪回查询和基于系统改变号的闪回查询。在使用基于时间的闪回查询时,难点是确定合理的时间点。为了更加准确、方便地确定闪回查询的时间点,可以使用基于系统改变号的闪回查询,这是因为系统改变号是惟一的和明确的。 4.使用子查询的基本规则是什么? 子查询必须用括号括起来,否则无法判断子查询语句的开始和结束。 子查询中不能使用order by 子句 子查询允许嵌套多层,但最多不超过255层 5.解释程序包的概念? 程序包可以把函数和过程封装起来,作为一个的单元,以便完成相应的操作。程序包由两个部分组成部分,即规格说明和程序包体。规格说明包含了该程序包的信息、过程和函数列表,程序包体包含了实际的代码。 6.优化查询、提高查询语句的执行效率有那些技术? “嘿嘿,到网上去找答案” 9 《Oracle 数据库》复习题参 一、选择题 【1-5】 ADABD 【6-10】 CBCBD 【11-15】AABCB 【16-20】ABACD 【21-25】CBDCD 【26-30】AAABB 【31-35】CCBBD 【36-40】CCDAC 【41-45】BBCDB 二、填空题 1.日志写入器进程 2.drop any table 3.alter user press account lock 4.with admin option 5. user_sys_prives 6.on commit preserve rows 7.主键 8.外键约束 9. ER图 10. insert 11. delete from table truncate table 12. dbms_flashback 13.事务 14. describe 15. column 16.列的别名 17. dbms_lob 18. group by 19.authors.author_id%type 20. with admin option 21.replace 22. preserve 23.连接查询 24. insert select 25. SPOOL 26. having 27. Union all 28. length(x) 29.窗口 30.规格说明和程序包体 三、操作题 1.select count(*) 部门人数,(select DNAME from DEPT where DEPT.DEPTNO=EMP.DEPTNO) 部门 from EMP group by DEPTNO; 2. select * from EMP where SAL>(select SAL from EMP where ENAME='SMITH'); 3. create table EMPNO as select EMPNO,ENAME from EMP; select ENAME,(select ENAME from EMPNO where EMP.MGR=EMPNO.EMPNO) from EMP; 4. select ENAME,(select DNAME from DEPT where EMP.DEPTNO=DEPT.DEPTNO) 所属部门 from EMP where JOB='CLERK'; 5.Select a.ename,a.sal,b.dname from emp a,dept b Where a.deptno=b.deptno and b.loc=’DALLAS’; 6. select JOB,min(SAL+nvl(COMM,0)) from EMP group by JOB; 7.Select m.ename from emp w,emp m Where w.mgr=m.empno and w.ename=’SCOTT’; 8. select ENAME from EMP where SAL>(select avg(SAL) from EMP); 9.Select ename , sal from emp where deptno=( select deptno From emp where name=’BLAKE’) and ename<>’BLAKE’; 10. select ENAME 员工姓名,(select DNAME from DEPT where DEPT.DEPTNO=EMP.DEPTNO) 所 属部门,SAL+nvl(COMM,0) 工资 from EMP; 四、编程题 (略) 五、问答题 (略) 10
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- baoaiwan.cn 版权所有 赣ICP备2024042794号-3
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务