Oracle 数据库设计实验指导书yk

时间:2024.3.19

 

 

Oracle数据库设计实验指导书

 

 

 


《Oracle 数据库设计》课程实验

一、本实验课在培养实验能力中的地位及作用

Oracle 数据库设计是软件工程专业的一门专业课。Oracle数据库是目前最流行的大型数据库平台之一,是一种极具前景的大型数据库。

该课程侧重于Oracle数据库维护和管理知识的掌握以及实际应用Oracle数据库的能力的培养。本课程设置的目的是使学生通过本课程的学习逐渐全面了解Oracle数据库,并具有对大型数据库数据库进行安全、维护等的管理技能,同时能应用Oracle数据库进行数据库结构的设计和数据库应用系统的开发。

二、应达到的实验能力标准

本实验的教学目标是使学生掌握如何使用Oracle 数据库开发系统,了解数据库设计及相关操作的基本概念与方法,进而学会建立与组织、操作数据库。上机实验的主要目标如下:

(1)通过上机操作,加深对数据库系统理论知识的理解。

(2)通过使用具体的DBMS,了解一种实际的数据库管理系统并掌握其操作技术。

(3)通过上机实验,提高动手能力,提高分析问题和解决问题的能力。

(4)通过上机实验,提高动手能力,掌握大型数据库实际应用与开发技巧。

三、实验要求

学生在实验课前认真做好预习,实验结束及时提交电子版实验报告。

三、实验成绩考核方法

实验成绩在课程总成绩中占30%,包括平时每次实验考核与最后一次实验考试。


实验内容目录

实验1  Oracle常用工具的使用及数据库的创建

实验2  SQL*Plus基本命令

实验3  oracle存储结构

实验4  数据对象的基本操作

实验5  数据的简单查询

    实验6  数据的高级查询

实验7   PL/SQL程序设计

    实验8  Oracle 的存储过程与触发器

实验9  Oracle数据库安全、恢复与备份

实验10 Oracle数据库应用开发


实验1  常用工具的使用及数据库的创建和管理

实验目的

1. 能熟练开启oracle的服务,熟悉oracle的环境,以及常用的工具,主要包括sql*plus和企业管理器em;

2. 通过对数据库的物理文件以及内存参数的查看,结合课件,加深对oracle实例以及整个体系结构的了解;

3. 能通过查询数据字典视图,了解数据库里的信息;

4. 掌握oracle的用DBCA创建数据库,以及启动和关闭数据库的方法。

实验内容

1.熟悉开启计算机服务。到C:\oracle\product\10.2.0\db_1\NETWORK\ADMIN,修改文件listener.ora和tnsnames.ora,把其中的HOST =×中的×改为你自己的机器名,保存这两个文件。

开启服务:我的电脑,右键,管理,服务,开启OracleServiceORCL和OracleOraDb10g_home1TNSListener服务。这样保证了服务器端监听器能正确监听,用服务器端的sql*plus能正确登录.

2.查看Oracle的安装结果:

注册表,环境变量,目录,以及服务

注册表:开始—运行 regedit

查看如下选项:

HKEY_LOCAL_MACHINE\SOFTWARE下的Oracle选项

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services下的与Oralce服务相关的选项。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application下的Oracle选项

环境变量:我的电脑,右键,属性,高级—环境变量

目录:C:\Oracle\product\10.2.0 –OracleHome

找到自己机器上的数据库物理文件,包括数据文件,日志文件,控制文件,初始参数文件,用记事本打开参数文件看一下里面内容。

3.用SQL*Plus连接到Oracle数据库, 开始à程序àOracle-OraDb10g_Home1à应用程序开发àSQL*Plus

用户名:sys                            

口令    orcl                      

主机字符串:orcl as sysdba              

练习下面命令:

(1)Select * from V$parameter;  //查询数据库的参数信息: 

或者show parameter

(2)Show parameter sga   // 用以下命令查看实例相应内存的大小

(3)Select * from v$bgprocess; //查看后台进程:

(4)练习把scott用户加锁或解锁:alter user scott account unlock/lock;

(5)Conn scott/tiger@orcl  //改用scott登陆:

    Select * from user_tables;

Desc emp

Desc dept

(6)修改scott用户密码为mytiger:  alter user scott identified by mytiger

4.通过portlist.ini文件查看HTTP服务器所占用的端口号,并启动OEM(企业管理器与isqlplus)。(文件位置D:\oracle\product\10.1.0\Db_1\install目录下的portlist.ini文件, 其URL为http://localHost:5560/isqlplus)。

5.通过客户端的企业管理器查看oracle的信息:

   实例/spfile中的参数//方案/表空间/数据文件/控制文件/日志文件

   并尝试建表。

6.使用DBCA创建名为myoracle的数据库。

7.在myoracle的数据库,并创建一个学生表。

8*.启动和关闭数据库。熟悉STARTUP与shutdown命令。

9. 练习在命令行和Windows环境下运行SQL*PLUS的方法,并查看emp表中数据信息。

10. 掌握两个数据库切换,如当前数据库为orcl切换到myoracle数据库。

11. 掌握Sys,sytem,scott用户登陆以及几个用户之间切换,并用show user查询当前用户。

12. 在SQL>提示符后面输入下面的SELECT语句,可以查看所有Oracle数据库的名称和创建日期。 SELECT NAME,CREATED FROM V$DATABASE;


实验2  SQL*Plus基本命令

实验目的

1. 了解SQL*Plus 和iSQL*Plus 工具的基本命令。

2. 熟练掌握list、run(/)、edit、save、c、a、del、n 等常用命令。

实验内容

1.查看scott.emp 的表结构所及所有记录。

2.练习用edit命令编辑SQL命令的方法。

3.查询emp表中sal>1200的记录信息,用脚本保存到C:\test.sql,并运行该脚本(用save与start完成)。

4.用spool命令把emp表中sal>1200信息输出到d:\ex1.txt文件中。

5.使用替换变量查询Emp表中job为CLERK且sal大于1200的记录信息。

6.查询scott.emp表中员工号与员工工资,要求在员工工资数值前加上本地货币符号。

7.查询scott.emp表中员工信息,要求为查询页生成标题和注脚。标题名为“华夏员工信息”,显示居中,注脚为“制作人:学生自己的姓名”。

8.可以用 LIST 命令来列出当前SQL缓冲区中的第1行或2行到第3行命令语句。(命令:L[IST] [n|n m|n *|n LAST|*|* n|* LAST|LAST])

例:SQL> LIST
1 SELECT ENAME, DEPTNO, JOB
2 FROM EMP
3 WHERE JOB = ’CLERK’

9.查询scott.emp表中员工工资在1000~2000记录信息,使用命令行方式、SQL缓冲区方式、脚本文件三种方式运行SQL语句。

10.把Select sal,sal*100 from emp语句中乘号( * )改为 加号( + )。即:

用语句( c/*/+/ )
11.在当前行select sal,sal+100 from emp 后加 where sal>=2000,显示运行结果。
12.设置一行可容纳的120个字符,显示表emp的信息
13.设置每页显示的15行,显示表emp的信息
14.设置列名员工号、员工姓名、工资,显示emp表中信息。


实验3  oracle存储结构

实验目的

1. 掌握Oracle数据库与实例概念;

2. 掌握Oracle数据库的物理存储;

3. 掌握Oracle数据库的逻辑存储。

实验内容

1.使用SQL命令创建一个本地管理方式下的自动分区管理的表空间USERTBS1,其对应的数据文件大小为20MB。

2.修改USERTBS1表空间的大小,将该表空间的数据文件修改为自动扩展方式,最大值为100MB。

3.为USERTBS1表空间添加一个数据文件,以改变该表空间的大小。

4.删除表空间USERTBS1,同时删除该表空间的内容以及对应的操作系统文件。

5.查询当前数据库中所有的表空间及其对应的数据文件信息。

6.为USERS表空间增加一个数据文件,文件名为userdatao3.dbf,大小为50M。

7.修改USERS表空间中的userdatao3.dbf为自动扩展方式,每次扩展5MB,最大为100MB。

8.将USERS表空间中的userdatao3.dbf更名为userdatao4.dbf。

9.为数据库添加一个重做日志文件组,组内包含两个成员文件,分别为redo4a.log和redo4b.log,大小为分别为5MB.

10.为新建的重做日志文件组添加一个成员文件,名称为redo4c.log。

11.将数据库设置为归档模式,并采用自动归档方式。


实验4  表的基本操作

实验目的

1. 掌握Oracle表的创建与基本操作;

2. 掌握表的约束类别、及各个约束的应用;

3. 掌握索引、索引化表、分区、视图、序列、同一词功能。

实验内容

1.在orcl数据库中创建一个名为student2的表,要求:(sno char(6) not null, sname char(10) not null, ssex char(2) not null, birthday date not null, polity char(20),sdept char(20)),其中表中字段满足:sno设置为主键,sname字段设置惟一性约束;

2.将student2表的ssex设置检查性约束,要求ssex只能为‘M’或‘F’,polity字段设置默认约束,值为‘群众’

3.在orcl数据库中创建一个名为course2的表(cno, cname, teacher, class)。

4.创建一个学生选课表sc2(sno char(6) not null,cno char(10) not null,grade real).将sc表创建外键约束,把sc表的sno和student表的sno关联起来,在这两个表之间创建一种制约关系。

5.利用insert语句向student2表中插入一条新的记录:(‘0007’,‘张三’,‘M’,to_date(‘1982-3-21’, ‘yyyy-mm-dd’),‘团员’,’计算机系’)

6.利用update语句将编号为‘0004’的学生polity改为‘党员’:

7.利用delete语句将英语成绩大于90的同学记录删除。

8.创建一个student_list表(列、类型与student表的列、类型相同)按学生性别分为两个区。

9*.创建一个class_number簇,聚簇字段名为CNO,类型为NUMBER(2)。然后利用该簇,创建student和class表。

10.为SCOTT模式下的emp表创建一个公共同义词,名称为employee2.

11.创建一个视图,包含数据为软件工程系学生的考试成绩。

12.用创建一个Users表,按照下面表所示,设计表的结构,并且在UserType字段必须大于0且小于3,在UserPwd字段的默认值为111111。

13.创建序列USER_S,该序列为1-1000之间整数,自动增加1。使用该序列向表USERS中插入2条新的记录。


实验5  数据的简单查询

实验目的

1. 掌握SELECT 语句的基本语法;

2. 掌握子查询及order by 子句与GROUP BY用法;

3. 掌握SELECT 语句的统计函数的作用和使用方法;

实验内容

1.针对student表查询所有学生的基本信息,并按出生日期升序排列。

2.针对student表查询女同学的平均年龄和女同学的人数。

3.在student表中查询所有男同学的年龄。

4.在student表中,(1) 查询‘刘’姓学生的信息;(2) 查询polity为’团员’或’党员’的学生信息。

5.在sc表中,(1) 查询各门课程的选课人数; (2) 查询缺少成绩的学生的学号及课程号。

6.查询与‘刘成’同一个系的学生情况。

7.查询选修了课程名为‘MIS’的学生的学号和姓名

8.查询姓是”周”,”吴”,”郑”,”王”的男学生数量。

9.统计每个系的‘001’号课程考试平均分,并按从高到低排序。

10.针对student、sc、course三张表所有选课学生的姓名、选修课程名及成绩。

11. 查出不及格学生的姓名。

12.查询缺考学生的姓名。

13.查询每个学生基本情况及其所选课程号和成绩(没选课的学生其课程号及成绩为空)。

14.查询比王军的数学成绩都高的学生的档案信息(嵌套查询)。

15.查询计算机系的选课成绩大于85分的学生信息(嵌套查询)。

注:求年龄公式:trunc((sysdate-birthday)/365)


实验6  数据的高级查询

实验目的

1. 掌握表中数据的查询方法及操作方法

2. 掌握连接查询与嵌套查询的方法

实验内容

在oracle数据库scott模式下的emp表和dept表,完成下列操作:

1.查询至少有一个员工的所有部门。

2.查询薪金比“SMITH”多的所有员工。

3.查询所有员工的姓名及其直接上级的姓名。

4.查询受雇日期早于其直接上级的所有员工。

5.查询部门名称和这些部门的员工信息,同时查询那些没有员工的部门。

6.查询所有“CLERK”(办事员)的姓名及其部门名称。

7.查询最低薪金大于1500的各种工作。

8.查询在部门“SALES”(销售部)工作的员工的姓名,假定不知道销售部的部门编号。

9.查询薪金高于公司平均薪金的所有员工。

10.查询与“SCOTT”从事相同工作的所有员工。

11.查询薪金等于部门30中员工的薪金的所有员工的姓名和薪金。

12.查询薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金。

13.查询在每个部门工作的员工数量、平均工资和平均服务期限。

14.查询所有员工的姓名、部门名称和工资。

15.查询所有部门的详细信息和部门人数。

16.查询各种工作的最低工资。

17.查询各个部门的MANAGER(经理)的最低薪金。

18.查询所有员工的年收入,按年薪从低到高排序。

补充:已知emp表和dept表的结构说明如下:

emp员工表(empno员工号/ename员工姓名/job工作/mgr上级编号/hiredate受雇日期/sal薪金/comm佣金/deptno部门编号)

dept部门表(deptno部门编号/dname部门名称/loc地点)

工资 = 薪金 + 佣金 


实验7  PL/SQL程序设计

实验目的

1. 掌握SQL 语言流程控制结构;

2. 掌握游标的使用;

实验内容

1.编写一个PL/SQL块,输出所有员工的员工名、员工号、工资和部门号

2.为工资小于2000元的员工增加200元。(用if语句)

3.输入一个员工号,修改该员工的工资,如果该员工为10号部门,工资增加100;若为20号部门,工资增加150;若为30号部门,工资增加200;否则增加300。用if语句完成

4. 执行CREATE TABLE temp_table(num_col NUMBER,info_col CHAR(10)) 语句创建temp_table表,然后利用循环向temp_table表中插入50条记录。见课件.

5.根据输入的员工号,修改该员工工资。如果该员工工资低于1000,则工资增加200;如果工资在1000-2000之间,则增加150;如果工资在20##-3000之间,则增加100;否则增加50。

6.根据输入的部门号查询某个部门的员工信息,部门号在程序运行时指定。(用游标)。

7.利用WHILE循环统计并输出各个部门的平均工资。

8.修改员工的工资,如果员工的部门号为10,工资提高100;部门号为20,工资提高150;部门号为30,工资提高200;否则工资提高250。(用游标完成)。

9.使用游标提取部门’’员工的姓名和工资。

10.修改员工号为1200的员工工资,将其工资提高100;如果该员工不存在,则向emp表中插入一个员工为号1200,工资为2000的员工。


实验8  Oracle的存储过程与触发器

实验目的

1. 掌握Oracle 的存储过程与函数

2. 掌握Oracle 的触发器

实验内容

1.创建一个函数,以员工号为参数,返回该员工的工资。

2.创建一个存储过程,以部门号为参数,查询该部门的平均工资,并输出该部门中比平均工资高的员工号、员工名。

3.创建一个存储过程,以部门号为参数,返回该部门的人数和最高工资。

4.创建一个以部门号为参数,返回该部门最高工资的函数。

5.创建一个触发器,禁止在休息日改变雇员信息。

6.为emp表创建一个触发器,当执行插入操作时,统计操作后员工人数;当执行更新工资操作时,统计更新后员工平均工资;当执行删除操作时,统计删除后各个部门的人数。

7.创建一个insert触发器,当在student表中插入一条新记录时,给出‘你已经插入了一条新记录!!!’的提示信息。

8.创建一个insert触发器,当在student表中插入一条新记录时,不允许在学号中出现重复的编号或出现空值。

9.创建一个insert触发器,当在sc表中插入一条新记录时,sno和cno必须是已经存在的学号和课程号,且grade应该在0----100之间。

10.创建一个after触发器,在student表中删除某学生的记录时,删除其相应的选课记录。

11.创建一个instead of 触发器,当在course表中上删出记录时,不允许删除course表中的数据。

12.为emp表创建一个触发器,保证修改员工工资时,修改后的工资低于该部门最高工资,同时高于该部门的最低工资。P363


实验9  Oracle的数据库安全、恢复与备份

实验目的

1. 掌握Oracle数据库的完整性约束;

2. 掌握Oracle 的恢复与备份,数据的导入与导出;

3. 掌握Oracle 的安全与权限。

实验内容

1.创建一个口令认证的数据库用户usera_exer,口令为usera默认表空间为USERS,配额为10MB,初始帐号为锁定状态。

2.创建一个口令认证的数据库用户userb_exer,口令为userb。

3.为usera_exer用户授予CREATE SESSION权限、SCOTT.emp的SELECT权限和UPDATE权限。同时允许该用户将获得的权限授予其他用户。

4.用usera_exer登陆数据库,查询和更新scott.emp中的数据。同时,将scott.emp的SELECT权限和UPDATE权限授予userb_exer。

5.禁止用户usera_exer将获得的scott.emp的SELECT权限和UPDATE权限授予其他人。

6.创建角色rolea和roleb,将CREATE TABLE权限、SCOTT.emp的SELECT权限和UPDATE权限授予rolea;将CONNECT, RESOURCE角色授予roleb。

7.将角色rolea、roleb授予用户usera_exer。

8.使用冷物理备份对数据库进行完全备份。

9.假定丢失了一个数据文件example01.dbf,试使用前面(第8题)做过的完全备份对数据库进行恢复,并验证恢复是否成功。

10.使用热物理备份对表空间users的数据文件user01.dbf进行备份。

11.使用EXP命令导出SCOTT用户下的所有数据库对象。

12.创建一个用户JOHN,并使用IMP命令将SCOTT用户下的所有数据库对象导入。


实验10  Oracle数据库应用开发

实验目的

1. 复习学过的基本知识;

2. 把所学过的知识应用与实际;

3. 掌握Oracle开发流程。

实验内容

1.人事管理系统数据库表设计,其中包括:员工基本信息表、员工工资信息表、员工请假信息表、管理员表等。

2.图书管理系统数据库表设计,其中包括:图书信息表、借阅信息表、员工请假信息表、管理员表等。

3.学生成绩管理系统数据库表设计,其中包括:学生表、选课程信息表、成绩信息表、教师表等。

更多相关推荐:
oracle数据库实验报告三

广东金融学院实验报告课程名称Oracle数据库第1页共2页第2页共2页第3页共2页第4页共2页第5页共2页第6页共2页第7页共2页第8页共2页第9页共2页第10页共2页

Oracle 数据库对象的管理 实验报告

西安财经学院本科实验报告学院部实验室实验楼619课程名称大型数据库系统概论Oracle学生姓名学号专业信息管理与信息系统教务处制二010年10月19日第1页共12页西安财经学院管理学院Oracle实验名称Ora...

《Oracle数据库》实验报告三

广东金融学院实验报告课程名称Oracle数据库第1页共2页第2页共2页第3页共2页第5页共2页第6页共2页第8页共2页

Oracle数据库课程设计报告

存档资料成绩:华东交通大学理工学院课程设计报告书所属课程名称Oracle11g数据库基础教程题目图书管理系统分院电信分院专业班级电子商务1班学号***学生姓名***指导教师付念20XX年12月20日 …

《Oracle数据库》实验报告

河南财经政法大学计算机与信息工程学院20xx年20xx年第一学期专业信息管理与信息系统课程名称Oracle数据库班级姓名学号指导教师张巧荣实验报告实验一创建数据库和表河南财经政法大学计算机与信息工程学院第1页共...

数据库实验报告Oracle数据库的创建与管理

大型数据库系统实践上机实验报告

实验报告《大型数据库(Oracle)》

大型数据库Oracle实验报告指导老师彭虎适用班级信B093220xx年8月25日制定实验一Oracle安装与维护一实验目的1了解并掌握Oracle10的安装方法2了解并掌握测试安装好的Oracle10g的方法...

oracle SQL数据库实训报告

实训报告教学院课程名称专业班级姓名指导教师计算机数据库实训计算机科学与技术1班陈建辉张国军20xx年1月3日课程设计任务书20xx20xx学年第学期学生姓名陈建辉学生学号20xx40410119专业班级计科1班...

oracle总实验报告

实验一Oracle数据库创建及SqlPlus的启动与退出一实验目的1掌握使用DBCA建立删除和管理数据库模板2掌握sqlplus工具的启动和退出二实验内容1用DBCA建立数据库2用DBCA删除数据库3用SQLP...

Oracle数据库课程设计——学生考勤系统的Oracle实现

烟台大学Oracle数据库课程设计报告改进版学生考勤系统姓名:XX指导教师:XX老师烟台大学计算机学院Oracle数据库课程设计学生考勤系统的Oracle实现1学生考勤管理系统背景分析随着高校校园信息化的逐步完…

Oracle实验报告

Oracle数据库实验报告学院专业班级课程学号姓名软件与信息工程学院10级软件工程软工三班数据库实践第1页实验一Oracle10g安装卸载及相关工具配置一实验目标安装Oracle10g了解OEM通过DBCA安装...

oracle数据库实验报告1_2内容

重庆文理学院软件工程学院实验报告专业软件工程班级软件二班学号20xx58234069姓名程清课程名称oracle数据库指导教师李瑞20xx年9月9日册1下载oracle11g软件包写出下载的地址otnntora...

oracle数据库实验报告(20篇)