资源描述
《Oracle数据库》实验安排
[内容要求]
请完成下列上机实验,按附录1要求书写实验报告,记录实验过程和完成命令及结果(运行结果需截图,命令请复制粘贴文本)。
序号
标题
上机操作内容
实验一
Oracle数据库的基本操作
见后面各实验题目要求
实验二
体系结构、存储结构与各类参数
实验三
Oracle数据库的创建
实验四
SQL语言
实验五
PL/SQL编程
实验六
模式对象管理和安全管理
实验七
RMAN恢复管理器
[上交时间]
每人递交一份打印并装订好的实验报告,于课程结束时上交,迟交者实验成绩计0分。
实验一 安装和使用Oracle数据库
【实验目的】
1. 掌握Oracle软件安装过程,选择安装组件
2. 掌握建立Oracle数据库,配置网络连接
3. 掌握Oracle企业管理器的基本操作
4. 使用SQL*Plus,登录到实例和数据库
5. 掌握命令方式的关闭和启动实例及数据库
【实验内容】
1. 查看已安装的Oracle组件
2. 查看服务,记录下和数据库有关的服务名,将他们设为手动方式,启动相关服务。
3. 配置监听器,查看是否在服务中有LISTENER,是否能启动
4. 配置本地net服务,提示:设置正确的服务器地址和端口号。
5. 打开SQL*Plus,用SYS和SYSTEM用户名和密码登录。
6. 思考题:有几种打开SQL*Plus的方法?分别是什么?
两种,
7. 用命令关闭实例和数据库,记录命令
SOL >shutdown normal
8. 用命令以NOMOUNT的方式启动实例,再加载数据库,打开数据库。
实验二 体系结构、存储结构与各类参数
【实验目的】
1. 理解Oracle体系结构
2. 了解初始化参数文件以及初始化参数的含义
3. 掌握查看三类数据字典视图和动态性能视图的方法
【实验内容】
1. 如何查看初始化参数?有哪几种方法?
1.show parameters 参数名 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,serial#,user#,machine, status各字段的信息
4. 打开OEM,查看三类物理文件信息
三类物理文件:数据文件、控制文件、日志文件
数据文件:.DBF存储表、索引及数据结信息
日志文件:.LOG记录对数据库的所有修信息,用于恢复
控制文件:.CTL二进制文件,记录数据库名、文件标识、检查点
5. 分别用select命令查询V$parameter动态性能视图,用show命令查看全局数据库名、实例名、是否启动自动归档、标准数据块大小这四个参数的值,记录命令和结果。
1. 用show命令查看全局数据库名
2. 用show命令查看实例名
3. 用show命令查看是否启动自动归档
4. 用show命令查看标准数据块大小
6. 如何用命令查看数据文件、控制文件的文件名、存储位置和状
态信息?
1. 查看数据文件的文件名、存储位置和状态信息
2. 查看控制文件的文件名、存储位置和状态信息
实验三 Oracle数据库的创建和管理
【实验目的】
1. 掌握Oracle数据库的创建方法
2. 使用DBCA创建数据库
3. 掌握命令方式手工创建数据库
【实验内容】
1. 使用DBCA创建数据库,名为MYDB,找到其初始化文件(文本型和服务器型文件都要找到),查看各类默认位置并记录下来(包括物理文件所在目录,该数据库相关的各个目录等),登录到mydb数据库。
2. 用命令方式手工创建数据库testorcl
(1) 创建批处理文件,建立必需的各级目录,参考第一题MYDB数据库的默认目录。
(2) 创建初始化文件PFILE,由此创建SPFILE,并放到指定文件夹。提示:pfile文件可以参考mydb数据库的pfile文件进行修改后另存。
(3) 创建并启动实例testorcl,密码设为123,当前实例指向testorcl
(4) 运行数据库建立脚本,更改相关服务为手动启动方式
(5) 运行数据字典等创建脚本
SQL>@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程序包)
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示例方案中的表,如果机器上没有该示例方案,则运行相关包和相应配置装入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
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_2\RDBMS\log
二、 完成下面的查询,记录查询命令和结果。
1. 查询HR方案种有哪些表,列出表名
2. 设置行宽为160,每页行数为40
3. 查询employees表中所有薪水在3000到6000元之间的员工编号、姓、名、受聘日期、工作代号、薪水、经理代号、部门号,按部门号升序排列,同一部门按员工编号降序排列
4. 查询每个部门的人数、平均薪水、最高薪水、最低薪水,按部门编号升序排列
5. 查询first_name的第三个字母是t的员工编号,first_name,电话号码,部门编号,部门名称
6. 在job_history表中查询任职时间超过1年的员工编号,任职历时月份(保留整数),工作代号,部门代号。
7. 查询每个部门经理的员工编号、姓名、薪水、部门号
实验五 PL/SQL编程
【实验目的】
1. 熟悉PL/SQL的数据类型和书写规则
2. 熟悉控制结构和游标的使用
3. 编写和运行函数、过程和触发器
【实验内容】
编写脚本文件,调试运行脚本文件,并记录结果。
1. 在SQL*Plus中编写一个PL/SQL块,功能用于打印学生信息
在DECLARE部分完成:
(2) 建立学生信息记录类型stu_record_type,包括学号,姓名,性别,籍贯,学习成绩和活动成绩。均为可变长字符类型
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
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(‘活动成绩:’||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=’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,
publishtime date,
bookprice float)
(2) 建立数据统计表major_stats,包含两个字段:书的总数和作者的总数
(3) 创建触发器UpdateMajorStats,完成在bookinfo表中插入、删除和修改记录之后,对bookinfo表进行统计,结果存储在(2)建立的major_stats表中
(4) 在bookinfo表中插入、删除和更新信息,再查看major_stats表中数据的变化
实验六 模式对象管理与安全管理
【实验目的】
1. 了解模式对象的类型
2. 掌握在OEM中操作模式对象的方法
3. 掌握命令方式建立表、视图、索引等常见对象的方法
4. 熟悉Oracle中权限分类和设置,理解系统提供用户的角色和权限
5. 熟练使用建立用户、角色,为用户授权、授予角色的命令
【实验内容】
1. 创建一个TESTUSET用户,密码为test,默认表空间为user表空间
2. 创建用户后为其授予登录数据库和创建数据库对象的权限
3. 用TESTUSER用户登录数据库
4. 创建学生信息表(学号,姓名,性别,入学成绩),定义主键和输入数据(至少5条数据),提交添加的数据。并完成下面的题目:
(1) 再继续添加2条数据,设置一个保存点savepoint,再添加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日
展开阅读全文