1、《Oracle数据库》实验安排 [内容要求] 请完成下列上机实验,按附录1要求书写实验报告,记录实验过程和完成命令及结果(运行结果需截图,命令请复制粘贴文本)。 序号 标题 上机操作内容 实验一 Oracle数据库的基本操作 见后面各实验题目要求 实验二 体系结构、存储结构与各类参数 实验三 Oracle数据库的创建 实验四 SQL语言 实验五 PL/SQL编程 实验六 模式对象管理和安全管理 实验七 RMAN恢复管理器 [上交时间] 每人递交一份打印并装订好的实验报告,于课程结束时上交,迟交者实验成绩计0分。 实验一
2、 安装和使用Oracle数据库 【实验目的】 1. 掌握Oracle软件安装过程,选择安装组件 2. 掌握建立Oracle数据库,配置网络连接 3. 掌握Oracle企业管理器的基本操作 4. 使用SQL*Plus,登录到实例和数据库 5. 掌握命令方式的关闭和启动实例及数据库 【实验内容】 1. 查看已安装的Oracle组件 2. 查看服务,记录下和数据库有关的服务名,将他们设为手动方式,启动相关服务。 3. 配置监听器,查看是否在服务中有LISTENER,是否能启动 4. 配置本地net服务,提示:设置正确的服务器地址和端口号。 5
3、 打开SQL*Plus,用SYS和SYSTEM用户名和密码登录。 6. 思考题:有几种打开SQL*Plus的方法?分别是什么? 两种, 7. 用命令关闭实例和数据库,记录命令 SOL >shutdown normal 8. 用命令以NOMOUNT的方式启动实例,再加载数据库,打开数据库。 实验二 体系结构、存储结构与各类参数 【实验目的】 1. 理解Oracle体系结构 2. 了解初始化参数文件以及初始化参数的含义 3. 掌握查看三类数据字典视图和动态性能视图的方法 【实验内容】 1. 如何查看初始化参数?有哪几种方法? 1.show pa
4、rameters 参数名 2、select [列名] from 表名 2. 初始化文件有几种?默认的保存位置在哪里? 1、.Spfile 默认位置:$oracle_home\database\dbs 2. Pfile默认位置:$oracle_home\admin\pfile 3. 在SQL*Plus中查看数据字典和动态性能视图,完成下面题目将命令和结果写入实验报告。 (1) 查看所有用户的用户名、默认表空间(dba_users) (2) 查看SGA的信息视图,组成部分的大小分配信息(V$SGA) (3) 查看v$session视图,列出SID,se
5、rial#,user#,machine, status各字段的信息 4. 打开OEM,查看三类物理文件信息 三类物理文件:数据文件、控制文件、日志文件 数据文件:.DBF存储表、索引及数据结信息 日志文件:.LOG记录对数据库的所有修信息,用于恢复 控制文件:.CTL二进制文件,记录数据库名、文件标识、检查点 5. 分别用select命令查询V$parameter动态性能视图,用show命令查看全局数据库名、实例名、是否启动自动归档、标准数据块大小这四个参数的值,记录命令和结果。 1. 用show命令查看全局数据库名 2. 用show命令查看实例名
6、 3. 用show命令查看是否启动自动归档 4. 用show命令查看标准数据块大小 6. 如何用命令查看数据文件、控制文件的文件名、存储位置和状 态信息? 1. 查看数据文件的文件名、存储位置和状态信息 2. 查看控制文件的文件名、存储位置和状态信息 实验三 Oracle数据库的创建和管理 【实验目的】 1. 掌握Oracle数据库的创建方法 2. 使用DBCA创建数据库 3. 掌握命令方式手工创建数据库 【实验内容】 1. 使用DBCA创建数据库,名为MYDB,找到其初始化文件(文本型和服务器型文件都要找到),查看各类默认位置
7、并记录下来(包括物理文件所在目录,该数据库相关的各个目录等),登录到mydb数据库。 2. 用命令方式手工创建数据库testorcl (1) 创建批处理文件,建立必需的各级目录,参考第一题MYDB数据库的默认目录。 (2) 创建初始化文件PFILE,由此创建SPFILE,并放到指定文件夹。提示:pfile文件可以参考mydb数据库的pfile文件进行修改后另存。 (3) 创建并启动实例testorcl,密码设为123,当前实例指向testorcl (4) 运行数据库建立脚本,更改相关服务为手动启动方式 (5) 运行数据字典等创建脚本 SQ
8、L>@e:\oracle\product\10.2.0\db_1\rdbms\admin\catalog.sql; (加载常用数据字典包) SQL>@e:\oracle\product\10.2.0\db_1\rdbms\admin\catproc.sql; (加载PL/SQL程序包) SQL>@e:\oracle\product\10.2.0\db_1\rdbms\admin\catrep.sql; (加载数据复制支持软件软件包) SQL>@e:\oracle\product\10.2.0\db_1\javavm\install\initjvm.sql; (加载Java程序包)
9、 SQL>@e:\oracle\product\10.2.0\db_1\sqlplus\admin\ppbld.sql; (加载系统环境文件) 3. 在DBCA中删除MYDB数据库。 简要操作:打开Database Configuration Assistant,在“请选择希望执行的操作” 界面选择“删除数据库”,指定删除目标删除即可。 实验四 SQL语言 【实验目的】 1. 掌握在Oracle中添加示例方案的方法 2. 熟练掌握SQL语言的查询功能 3. 掌握SQL Plus常用命令 【实验内容】 一、 需要访问HR示例方案中的表,如果机器上没
10、有该示例方案,则运行相关包和相应配置装入HR方案。 1. 将hr.rar解压到D:\oracle\product\10.2.0\db_2\demo\schema\ human_resources目录下,然后在SQL*PLUS 中执行 hr_main.sql这个文件,以SYS用户登录执行。即 SQL>@D:\oracle\product\10.2.0\db_2\demo\schema\human_resources\hr_main.sql 2. 然后按提示依次输入如下: Specify passwordfor HR as parameter 1: Enter valuefor 1: hr
11、 Specify default tablespeacefor HR as parameter 2: Enter valuefor 2: users Specify temporary tablespacefor HR as parameter 3: Enter valuefor 3: temp Specify passwordfor SYS as parameter 4: Enter valuefor 4:runner Specify log path as parameter 5: Enter valuefor 5: D:\oracle\product\10.2.0\db
12、2\RDBMS\log 二、 完成下面的查询,记录查询命令和结果。 1. 查询HR方案种有哪些表,列出表名 2. 设置行宽为160,每页行数为40 3. 查询employees表中所有薪水在3000到6000元之间的员工编号、姓、名、受聘日期、工作代号、薪水、经理代号、部门号,按部门号升序排列,同一部门按员工编号降序排列 4. 查询每个部门的人数、平均薪水、最高薪水、最低薪水,按部门编号升序排列 5. 查询first_name的第三个字母是t的员工编号,first_name,电话号码,部门编号,部门名称 6. 在job_history
13、表中查询任职时间超过1年的员工编号,任职历时月份(保留整数),工作代号,部门代号。 7. 查询每个部门经理的员工编号、姓名、薪水、部门号 实验五 PL/SQL编程 【实验目的】 1. 熟悉PL/SQL的数据类型和书写规则 2. 熟悉控制结构和游标的使用 3. 编写和运行函数、过程和触发器 【实验内容】 编写脚本文件,调试运行脚本文件,并记录结果。 1. 在SQL*Plus中编写一个PL/SQL块,功能用于打印学生信息 在DECLARE部分完成: (2) 建立学生信息记录类型stu_record_type,包括学号,姓名,性别,籍贯,学习成绩和活动成绩。均为
14、可变长字符类型 Set serveroutput on Declear type stu_record_type is record (s_no varchar(10); s_name varchar(10); s_sex varchar(10); s_native varchar(10); s_grade varchar(10); s_score varchar(10); ) (3) 编写本地子过程:学生信息打印过程PrintStuRecord,把(1)中定义的记录类型作为参数 Procedure PrintStuRecord As begin
15、 dbms_output.put_line(‘学号:’||stu_record.s_no); dbms_output.put_line(‘姓名:’||stu_record.s_name); dbms_output.put_line(‘性别:’||stu_record.s_sex); dbms_output.put_line(‘籍贯:’||stu_record.s_native); dbms_output.put_line(‘学习成绩:’||stu_record.s_grade); dbms_output.put_line(‘活动成绩:’||
16、stu_record.s_score); (4) 定义学生信息记录变量stu_record Stu_record stu_record_type; 在BEGIN…END部分完成: (1) 为stu_record变量的各个元素赋值如下: 学号:‘2001001’ 姓名:’李新’ 性别:‘m’ 籍贯:‘黑龙江省哈尔滨市’ 学习成绩:‘Excellent’ 活动成绩:‘Good’ Begin S_no=’2001001’; s_name=’李新’; s_sex=’m’; s_native=’黑龙江省哈尔滨市’; s_grade
17、’Excellent’; s_score=’Good’; end; / (2) 对该变量的调用打印过程,输出到屏幕 2. 建立对bookinfo表的DML触发器,一旦bookinfo表发生了任何变化,立即触发,对bookinfo表的数据进行统计,结果存储在数据统计表中 (1) 如果没有则建立bookinfo表,选择建立在scott用户下,表结构为(bookno varchar2(36) Primary key, bookname varchar2(40) not null, authorname varchar2(10) not null, publishti
18、me date, bookprice float) (2) 建立数据统计表major_stats,包含两个字段:书的总数和作者的总数 (3) 创建触发器UpdateMajorStats,完成在bookinfo表中插入、删除和修改记录之后,对bookinfo表进行统计,结果存储在(2)建立的major_stats表中 (4) 在bookinfo表中插入、删除和更新信息,再查看major_stats表中数据的变化 实验六 模式对象管理与安全管理 【实验目的】 1. 了解模式对象的类型 2. 掌握在OEM中操作模式对象的方法
19、3. 掌握命令方式建立表、视图、索引等常见对象的方法 4. 熟悉Oracle中权限分类和设置,理解系统提供用户的角色和权限 5. 熟练使用建立用户、角色,为用户授权、授予角色的命令 【实验内容】 1. 创建一个TESTUSET用户,密码为test,默认表空间为user表空间 2. 创建用户后为其授予登录数据库和创建数据库对象的权限 3. 用TESTUSER用户登录数据库 4. 创建学生信息表(学号,姓名,性别,入学成绩),定义主键和输入数据(至少5条数据),提交添加的数据。并完成下面的题目: (1) 再继续添加2条数据,设置一个保存点savepoint,
20、再添加1条数据,执行回退到保存点的回退命令。查看此时表中数据 (2) 查询入学成绩大于480的学生信息 (3) 建立男生信息视图 (4) 在“成绩”字段上建立B-树索引 5. 创建一个表簇,名为empl_dep,容纳empl表和dep表,有公共字段depno(簇键),大小为500,默认表空间为USERS表空间,存储参数为,初始化区间大小为100K,第二区间为200K等。 6. 在表簇中建立empl表和dep表 (1) empl表(职员表)的主键为eno,外键为depno (2) dep表(部门表)的主键为depno,。 7. 在表簇中建立一个簇键索引,名为empl_dep_index。 8. 授予TESTUSER用户在empl表上的所有权限 9. 收回empl表上DELETE权限 中南林业科技大学 实验报告 课程名称:Oracle数据库 专业班级:2013级计算机科学与技术2班 姓名:陈旺 学号:20134622 2015年 11 月 5日






