《Oracle数据库》实验报告.docx
《《Oracle数据库》实验报告.docx》由会员分享,可在线阅读,更多相关《《Oracle数据库》实验报告.docx(13页珍藏版)》请在冰豆网上搜索。
《Oracle数据库》实验报告
实验报告
河南财经政法大学计算机与信息工程学院
2013年---2014年第2学期
专业:
课程名称:
Oracle数据库
班级:
姓名:
学号:
实验一数据库和表空间管理
实验目的
(1)了解数据库的结构以及一些基本概念
(2)掌握使用DBCA创建数据库
(3)了解使用SQL语句手工创建数据库
(4)掌握使用OEM和SQL语句管理表空间
实验内容
(1)启动DBAC,利用DBCA创建数据库ORCL,并删除数据库ORCL
(2)启动OEM,创建本地管理方式自动分配区间的表空间DATA01,其中数据文件的名称为data01.dbf,大小为10M。
(3)启动SQL*Plus,使用createtablespace语句创建本地管理方式,区间尺寸为256k的表空间DATA02,其中数据文件的名称为data02.dbf,大小为12M。
(4)使用altertablespace语句在本地管理表空间DATA02中增加数据文件data03.dbf,大小为8M,自动增长。
(5)使用PL/SQL语句改变数据文件data03.dbf的大小为10M。
(6)使用droptablespace语句删除表空间DATA02及其包含的段和数据文件。
(7)使用OEM和PL/SQL语句创建重做日志组,组号为4,并且包含两个重做日志文件log1d.log和log2d.log,给出其绝对路径,大小为5000k。
实验数据记录及分析(或程序及运行结果)
评语:
日期:
2014年月日
实验二创建和管理表
实验目的
(1)掌握OEM中创建表的方法
(2)掌握使用SQL语句创建表
(3)掌握OEM中修改、删除表的方法
(4)掌握使用SQL语句修改、删除表的方法
实验内容
(1)启动OEM,在OEM中创建学生信息表XS、课程信息表KC和学生成绩表XS_KC
(2)启动SQL*Plus,用PL/SQL创建员创建学生信息表XS、课程信息表KC和学生成绩表XS_KC
(3)在OEM中,为XS表增加SFZH列,字符型,长度18,唯一约束
(4)利用SQL语句,在XS表上增加一个class字段,使class字段只能取值为(1,2,3,4,5,6);
(5)删除KC表,能否删除?
为什么?
怎么解决?
学生信息表XS
列名
数据类型
大小
小数位
是否为空
默认值
约束
含义
XH
char
6
否
主键
学号
XM
varchar2
20
否
姓名
ZYM
varchar2
10
专业
XB
char
2
男
性别
CSSJ
date
出生时间
ZXF
number
2
总学分
课程信息表KC
列名
数据类型
大小
小数位
是否为空
默认值
约束
含义
KCH
char
3
否
主键
课程号
KCM
varchar2
20
否
课程名
KKXQ
number
1
1
1~8
开课学期
XS
number
2
学时
XF
number
1
学分
学生成绩表XS_KC
列名
数据类型
大小
小数位
是否为空
默认值
约束
含义
XH
char
6
否
主键,外键
学号
KCH
char
3
否
主键,外键
课程号
CJ
number
3
学分
实验数据记录及分析(或程序及运行结果)
评语:
日期:
2014年月日
实验三表数据的插入、修改和删除
实验目的
(1)掌握用PL/SQL语句对数据库表进行插入、修改和删除数据的操作
(2)理解数据更新操作时要注意数据的完整性
(3)理解PL/SQL语句对表数据操作的灵活控制功能
实验内容
(1)利用PL/SQL的INSERTINTO命令向学生信息表XS、课程信息表KC和学生成绩表XS_KC添加数据,其数据内容参考下表。
(2)利用PL/SQL的UPDATE命令修改表数据:
●在数据表XS中,将学号(XH)为“061101”同学的专业(ZYM)改为“通信工程”;
●在数据表XS_KC中,将成绩(CJ)小于70分的所有同学成绩置空;
●在数据表XS_KC中,将计算机系的学生成绩增加10分;
(3)利用PL/SQL的DELETE命令删除数据表XS中所有备注(BZ)为空的记录。
(4)利用PL/SQL的DELETE命令删除数据表XS_KC中所有男生的成绩记录。
(5)如果要将“王林”的学号改为“071101”,SQL语句怎么写?
能不能修改成功?
为什么?
(6)如果要删除“王林”的基本信息数据,SQL语句怎么写?
能不能删除成功?
为什么?
怎么解决?
学生信息表(XS)数据
XH
XM
ZYM
XB
CSSJ
ZXF
BZ
061101
王林
计算机
男
1986-02-10
50
061102
程明
计算机
男
1987-02-01
50
061103
王燕
计算机
女
1985-10-06
50
061104
韦严平
计算机
男
1986-08-26
50
061106
李方方
计算机
男
1986-11-20
50
061107
李明
计算机
男
1986-05-01
54
提前修完《数据结构》,并获学分
061108
林一帆
计算机
男
1985-08-05
52
已提前修完一门课
061109
张强民
计算机
男
1984-08-11
50
061110
张蔚
计算机
女
1987-07-22
50
三好生
061111
赵琳
计算机
女
1986-03-18
50
061113
严红
计算机
女
1985-08-11
48
有一门功课不及格,待补考
06120l
王敏
通信工程
男
1984-06-10
42
061202
王林
通信工程
男
1985-0l-29
40
有一门功课不及格,待补考
061203
王玉民
通信工程
男
1986-03-26
42
061204
马琳琳
通信工程
女
1984-02-10
42
061206
李计
通信工程
女
1985-09-20
42
061210
李红庆
通信工程
女
1985-05-0l
44
提前修完一门课,并获学分
061216
孙祥欣
通信工程
女
1984-03-09
42
061218
孙研
通信工程
男
1986-10-09
42
课程信息表(KC)
KCH
KCM
KKXQ
XS
XF
101
计算机基础
1
80
5
102
程序设计语言
2
68
4
206
离散数学
4
68
4
208
数据结构
5
68
4
209
操作系统
6
68
4
210
计算机原理
7
85
5
212
数据库原理
7
68
4
301
计算机网络
7
51
3
302
软件工程
7
51
3
学生成绩表(XS_KC)
XH
KCH
CJ
XH
KCH
CJ
XH
KCH
CJ
061101
101
80
061107
101
78
061l11
206
76
061101
102
78
061107
102
80
061113
10l
63
06110l
206
76
061107
206
68
061113
102
79
061103
101
62
061108
101
85
061113
206
60
061103
102
70
061108
102
64
061201
10l
80
061103
206
81
061108
206
87
061202
101
65
061104
10l
90
061109
10l
66
061203
101
87
061104
102
84
061109
102
83
061204
101
91
061104
206
65
061109
206
70
061210
101
76
061102
102
78
061110
10l
95
061216
101
81
061102
206
78
061110
102
90
061218
101
70
实验数据记录及分析(或程序及运行结果)
评语:
日期:
2014年月日
实验四数据库的查询
实验目的
(1)掌握SELECT语句的基本语法
(2)掌握子查询的表示
(3)掌握连接查询的表示
(4)掌握数据汇总的方法
(5)掌握SELECT语句的GROUPBY子句的作用和使用方法
(6)掌握SELECT语句的ORDERBY子句的作用和使用方法
实验内容
针对ORCL数据库中的数据表,完成下列查询。
(1)SELECT基本使用
●查询每个同学的所有数据。
●查询学号为“2007070103”同学的姓名、性别和专业。
●查询每个女同学的姓名、性别,并将结果中各列的标题指定为姓名和性别;
●查询所有其姓名含有“阳”的同学的专业、性别;
●查询课程编号“101”,且成绩在70~80之间的同学的学号;
(2)嵌套查询
●查询选修“101”课程的同学的学号、姓名和专业信息;
●查询没有选修“101”课程的同学的学号、姓名和专业信息;
●查询比通信工程专业的同学总学分都高的同学学号、姓名和专业信息;
●查询平均成绩高于80分的同学的学号、姓名、性别和专业;
(3)连接查询
●查询每个同学的学号、姓名、课程名和成绩信息;
●查询总学分大于48分的同学姓名和其选课情况(包括课程名称、学时和成绩);
(4)数据汇总
●查询计算机专业同学总学分的平均分;
●查询全体同学的总学分的学最高分和最低分;
●查询计算机专业同学总人数;
●查询学号为“061101”同学的各门课程总分;
(5)GROUPBY
●查询每个专业的总人数;
●查询每位同学的平均分;
(6)ORDERBY
●查询每个同学的学号、姓名、课程名和成绩信息,并按成绩由低到高排列输出;
实验数据记录及分析(或程序及运行结果)
评语:
日期:
2014年月日
实验五视图和索引
实验目的
(1)了解视图的重要性
(2)掌握视图的建立
(3)掌握视图的使用
(4)掌握索引的使用方法
(5)掌握索引的概念及分类
实验内容
(1)使用PL/SQL语句CREATEVIEW命令创建下列视图:
●视图view_female,包含学生信息表中所有女生信息;
●视图view_count,包含每个专业的名称和学生人数信息;
●视图view_sum,包含每个同学的学号、姓名、课程总成绩信息;
●视图view_score,包含每个同学的学号、姓名、课名,成绩信息;
(2)使用PL/SQL语句DROPVIEW命令删除视图view_female。
(3)在SQLPlus中,通过视图,查询下列信息:
●查询“计算机”专业的学生人数;
●查询学号“061101”同学的所选课程和课程成绩信息
(5)在OEM中建立索引:
●对课程信息表KC的KCM列创建索引idx_kcm;
●对学生表XS的XH、XM列创建唯一索引idx_xhxm;
(6)使用PL/SQL命令CREATEINDEX建立以上两个索引
(7)通过数据字典查看XS表的索引信息
实验数据记录及分析(或程序及运行结果)
评语:
日期:
2014年月日
实验六用户、角色管理
实验目的
(1)掌握数据库的安全性能
(2)掌握使用用户实现数据库安全性的方法
(3)掌握使用角色实现数据库安全性的方法
实验内容
(1)利用CREATEUSER语句,在数据库中创建用户MANAGER,授予DBA角色和SYSDBA系统权限。
(2)利用CREATEUSER语句,在数据库中创建用户USER1,授予查询XS表的对象权限和创建表的系统权限。
(3)利用CREATEROLE语句,在数据库中创建角色ADMIN,授予DBA角色和修改表和删除表的权限。
(4)利用新建立的用户连接数据库,验证其权限。
实验数据记录及分析(或程序及运行结果)
评语:
日期:
2014年月日
实验七备份和恢复
实验目的
(1)掌握备份的使用方法
(2)掌握恢复的使用方法
(3)掌握闪回的使用方法
实验内容
(1)利用Expdp命令,对ORCL数据库导出整个scott方案中的emp、dept表。
(2)利用impdp命令,使用步骤1导出的转储文件,对ORCL数据库导入emp、dept表。
(3)练习数据库闪回技术
实验数据记录及分析(或程序及运行结果)
评语:
日期:
2014年月日
实验八PL/SQL编程
实验目的
(1)掌握变量的分类及使用
(2)掌握各种运算符的使用
(3)掌握各种控制语句的使用
(4)掌握系统函数及用户自定义函数的使用
(5)游标的使用
实验内容
(1)创建函数get_score(xh,kch),返回某个学生某门课的成绩,要求成绩转换为五级制。
(2)调用函数get_score。
(3)练习游标的用法。
按下列格式输出学生的成绩:
061101王林:
计算机基础90
程序设计语言80
…
061102程明:
计算机基础56
程序设计语言74
…
实验数据记录及分析(或程序及运行结果)
评语:
日期:
2014年月日
实验九存储过程和触发器的使用
实验目的
(1)掌握存储过程的意义
(2)掌握存储过程的使用方法
(3)掌握触发器的意义
(4)掌握触发器的使用方法
实验内容
(1)利用CREATEPROCEDURE创建存储过程,使其能够完成向学生信息表中添加记录信息,添加时需判断该学生信息是否存在。
并调用所建立的存储过程,对学生信息表中添加记录信息。
(2)利用CREATETRIGGER创建触发器,完成XS_KC表的XH列和XS表的XH列的参照完整性规则。
实验数据记录及分析(或程序及运行结果)
评语:
日期:
2014年月日