Oracle实训报告 - 图文

更新时间:2024-05-13 05:45:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

ORACLE数据库开发实践报告要求

1.实践名称:Oracle数据库开发 2.实践题目:

(1)Oracle数据库的操作

(2)小型数据库系统的设计与开发

3.实践目的:

初步掌握Oracle关系数据库语言;掌握 Oracle的操作与使用;数据库的建立与管理、数据表的建立与操作等;PL/SQL语言的使用与编程。

4.实践内容与结果: 4.1 Oracle数据库的操作 4.1.1实践操作1

1、熟悉Oracle运行环境,理解存储管理器、方案管理器和安全管理器的作用及操作过程。

要求: (1).登录到存储管理器中,查看表空间和回滚段中的情况。

(2).登录到方案管理器中,查看SYS方案下的ACCESS$表。

(3).在SQL Plus环境下,键入下面内容,执行并观察结果。

?

? ? ? ? ? ? ? ? ? ?

SQL>SET SERVEROUTPUT ON; SQL>DECLARE

2 n1 NUMBER:=18; 3 n2 NUMBER:=6; 4 BEGIN

5 IF n2<=10 THEN 6 n1:=n1+n2;

7 DBMs_Output.Put_Line(To_Char(n1)); 8 END IF; 9 END; 10 /

?

4.1.2实践操作2

1、建立数据库(熟悉DBCA工具的使用)

2、利用OEM创建新用户

SOL语句:

CREATE USER \ PROFILE \

IDENTIFIED BY \ ACCOUNT UNLOCK;

GRANT UNLIMITED TABLESPACE TO \GRANT \GRANT \3、利用OEM创建Departments表

(1)设置一般信息

(2)设置约束条件

SQL语句:

CREATE TABLE \

NULL, \ VARCHAR2(100) NOT NULL, PRIMARY KEY(\

4、创建Employees表

SOL语句:

CREATE TABLE \ \ NUMBER(1) NOT NULL, \

CHAR(6) NOT NULL, \CHAR(12) NOT NULL, \

CHAR(3) NOT NULL, PRIMARY KEY(\

5、创建Salary表

SOL语句:

CREATE TABLE \(\CHAR(6) NOT NULL, \

NUMBER(8, 2) NOT NULL, \ PRIMARY KEY(\

6、用PL/SQL语句创建表Departments、表Employees、表Salary:

4.1.3实践操作3

1、用OEM向表Employ、表Departments、表Salary中各插入记录: (1)表Departments插入记录

SOL语句:

INSERT INTO \ALUES ('1' ,'财务部' ,'1' );

INSERT INTO \ALUES ('2' ,'人力资源部' ,'2' ); INSERT INTO \ALUES ('3' ,'经理办公室' ,'3' ); INSERT INTO \ALUES ('4' ,'研发部' ,'4' ); INSERT INTO \ALUES ('5' ,'市场部' ,'5' ); (2)表Employ插入记录

SOL语句: INSERT INTO \(\\) VALUES ('000001' ,'王林' ,TO_DATE('23-1月-1966', 'dd-Mon-yyyy HH:MI:SS AM') ,1 ,'中山路32-1-508' ,'210003' ,'83355668' ,'2' )

INSERT INTO \(\\) VALUES ('010008' ,'伍荣华' ,TO_DATE('28-3月-1976', 'dd-Mon-yyyy HH:MI:SS AM') ,1 ,'北京东路100-2' ,'210001' ,'83321321' ,'4' )

INSERT INTO \(\\) VALUES ('020010' ,'王向荣' ,TO_DATE('09-12月-1982', 'dd-Mon-yyyy HH:MI:SS AM') ,1 ,'四牌楼10-0-108' ,'210006' ,'83792361' ,'1' )

INSERT INTO \(\\) VALUES ('020018' ,'李莉' ,TO_DATE('30-7月-1976', 'dd-Mon-yyyy HH:MI:SS AM') ,0 ,'中山东路102-2' ,'210002' ,'83413301' ,'1' )

INSERT INTO \(\\) VALUES ('102201' ,'刘明' ,TO_DATE('02-9月-1965', 'dd-Mon-yyyy HH:MI:SS AM') ,1 ,'虎踞路100-2' ,'210013' ,'83606608' ,'5' )

INSERT INTO \(\\) VALUES ('102208' ,'朱俊' ,TO_DATE('10-8月-1979', 'dd-Mon-yyyy HH:MI:SS AM') ,1 ,'牌楼巷5-3-106' ,'210004' ,'84708817' ,'5' )

INSERT INTO \(\\) VALUES ('108991' ,'忠民' ,TO_DATE('01-10月-1974', 'dd-Mon-yyyy HH:MI:SS AM') ,1 ,'中山路10-3-105' ,'210003' ,'83346722' ,'3' )

(3)表Salary中插入记录

SOL语句:

INSERT INTO \(\,\,\VALUES ('000001' ,2100.8 ,123.09 )

INSERT INTO \(\,\,\VALUES ('010008' ,1582.62 ,88.03 )

INSERT INTO \(\,\,\VALUES ('102201' ,2569.88 ,185.65 )

INSERT INTO \(\,\,\VALUES ('108991' ,3259.98 ,281.52 )

INSERT INTO \(\,\,\VALUES ('020010' ,2860.0 ,198.0 )

INSERT INTO \(\,\,\VALUES ('020018' ,2347.68 ,180.0 )

INSERT INTO \(\,\,\VALUES ('102208' ,1980.0 ,100.0 )

2、用PL/SOL语句向表Employ、表Departments、表Salary中插入记录:

) ) ) ) ) ) )

4.1.4实践操作4

1、建立索引:

2、实现域完整性:

注:该同学此题完成有误,下面给出另一同学的正确解答

为数据库中的employees表的phonenumber列建立check约束:

3、实现实体完整性:

(1)为表Departments设置主键DepartmentID:

(2)为表Departments的DepartmentName建立唯一性索引:

4实现参照完整性:

4.1.5实践操作5

1、 SELECT语句的基本使用:

(1)查询每个雇员的所有数据:

(2)查询每个雇员的地址和电话:

(3)查询EmployeeID为000000的雇员的地址和电话:

(4)查询Employees表中女雇员的地址和电话;

(5)计算每个雇员的实际收入:

(6)找出所有姓王的雇员的部门号:

(7)找出所有收入在2000~5000元之间的雇员号码:

2 子查询的使用

(1)查找在财务部工作的雇员的情况:

(2)查找财务部年龄不低于研发部雇员年龄的雇员的姓名:

(3)查找比所有财务部的雇员收入都高的雇员的姓名:

3.连接查询的使用

(1)查询每个雇员的情况及其薪水的情况:

(2)查找财务部收入在2200元以上的雇员姓名及其薪水情况:

4.数据汇总

(1) 求财务部雇员的平均水平:

(2) 求财务部雇员的平均实际收入:

(3) 求财务部雇员的总人数:

5.GROUP BY、ORDER BY 子句的使用 (1)求各部门的雇员数:

(2)将各雇员的情况按收入由低到高排列:

6.视图

(1)创建视图——限制查看雇员的某些情况:

各部门经理只能查找本部门雇员的薪水情况:

(2)使用视图

查询财务部雇员的信息:

查询财务部雇员薪水情况:

向表EMPLOYEES中插入一条记录:

从经理办公室转到市场部:

从表EMPLOYEES中删除:

4.1.6实践操作6

1.条件结构的使用 例5.5

2.循环结构的使用 例5.9

2. 选择和跳转语句

例5.13

4.自定义函数的使用 例5.27

例5.28

4.1.7实践操作7

1.创建触发器

(1)修改DEPARTMENTS表中的DEPARTMENTID字段值

(2)删除DEPARTMENTS表中一条记录的同时删除该记录DEPARTMENTID字段在EMPLOYEES表中对应的记录

2.创建存储过程

(1)添加职员记录的存储过程:

(2)修改职员记录的存储过程;

(3)删除职员记录的存储过程:

3.调用存储过程

4.1.8实践操作8

1. 创建用户

2. 创建角色

3. 创建概要文件

5.实践小结:

在实训之前,我对Oracle一无所知,后来经过老师课上耐心细致的讲解,我对Oracle渐渐有了较为清晰的认识。一开始,老师就首先带领我们大致浏览了一下Oracle的一些功能模块。我发现Oracle与之前我们学过的ACCESS和SQL既有相似之处又有比它们优越的地方。它在安全性和严密性方面上优势尤为突出,而且其巨大的容量和归档等功能使其成为目前最流行的关系型数据库管理系统,被越来越多的用户在信息系统管理、企业数据处理、

Internet、电子商务网站等领域作为应用数据的后台处理系统。

在第二部分实验过程中,由于对Oracle认识尚浅,在具体的操作过程中,出现了很多问题。例如在向员工表中插入一条记录时,系统一直提醒我格式不匹配,我反反复复进行了修改,但却还是出现相同的问题。最后在老师的提醒下,我了解到原来是我的日期格式输入的不符合要求。Oracle默认的格式是:DD—M月—YY。而我却将顺序颠倒了。从而导致系统一直报错。在之后的一些操作中SQL语句也经常有出现错误的情况,在老师的帮助下,我渐渐开始对SQL语句逐渐的熟悉起来。在以后的几天内我自己就能解决出现的一些问题。我也发现PL/SQL语句的一些特点。它的语句主要基于SQL语句,但也有JAVA和C语言的一些影子在。所以比较容易理解。

我感到这一个星期的努力都没有白费,心里异常兴奋。通过这一周的实训,我不仅掌握了Oracle的一些操作技能,对数据库的理解也加深了。这对我以后的学习必定会大有裨益的。

本文来源:https://www.bwwdw.com/article/nyy7.html

Top