1、Oracle应用开发实验指导书Oracle 应用开发课程实验一、本实验课在培养实验能力中的地位及作用Oracle 应用开发是软件工程专业的一门专业课。Oracle数据库是目前最流行的大型数据库平台之一,是一种极具前景的大型数据库。该课程侧重于Oracle数据库应用开发知识的掌握以及实际应用Oracle数据库的能力的培养。本课程设置的目的是使学生通过本课程的学习逐渐全面了解Oracle数据库开发技能,并具有对大型数据库数据库进行安全、维护等的管理技能,同时能应用Oracle数据库进行数据库结构的设计和数据库应用系统的开发。二、应达到的实验能力标准本实验的教学目标是使学生掌握如何使用Oracle
2、数据库开发系统,了解数据库设计及相关操作的基本概念与方法,进而学会建立与组织、操作数据库。上机实验的主要目标如下:(1)通过上机操作,加深对数据库系统理论知识的理解。(2)通过使用具体的DBMS,了解一种实际的数据库管理系统并掌握其操作技术。(3)通过上机实验,提高动手能力,提高分析问题和解决问题的能力。(4)通过上机实验,提高动手能力,掌握大型数据库实际应用与开发技巧。三、实验要求学生在实验课前认真做好预习,实验结束及时提交电子版实验报告。三、实验成绩考核方法实验成绩在课程总成绩中占30%,包括平时每次实验考核与最后一次实验考试。实验内容目录实验1 创建格式良好的XML文档实验2 在XML文
3、档中使用DTD实验3 在XML文档中使用Schema实验4 XML解析实验5 数据对象的基本操作与查询实验6 PL/SQL程序设计 实验7 Oracle 的存储过程与触发器实验8 Oracle数据库应用开发实验1 创建格式良好的XML文档实验目的:1. 通过本实验,使学生能够熟悉XML Spy开发环境工具;2. 掌握XML文档的基本语法、文档编辑、解析、浏览工具;3. 能够得到格式良好、有效的XML文档。实验内容:1创建一个XML文件,输入下面的信息,并把第一个元素信息修改为自己个人信息,并验证XML文件格式的正确性。 2下面文档格式是不正确,请修改,并验证XML文件格式的正确性。 XML基础
4、教程 578-3-48666-9 杨毅 28.00 计算机基础 456-4-59777-8 廖科 30.00 3创建一个XML文件,输入自己的个人信息,并验证XML文件格式的正确性。注意实体的引用。 4CDATA实例1练习,设计下面的代码是否正确5分析下面实例,上机编写内部、外部DTD文档,并进行验证。实验2 在XML文档中使用DTD实验目的:1. 能参照示例XML文件进行对应的XML DTD定义。2. 能利用DTD对XML文件进行验证。实验内容:1输入下面代码,并验证下面文档是否有效?2并验证下面文档是否有效?修改并使其文档有效!DOCTYPE 班级 周星驰23学习刻苦林青霞 32是一个好学
5、生3验证下面文档是否有效?并修改有效文档。!DOCTYPE address Mike Li 502 ShanXi Road 200111China 4定义dtd格式,并验证其文档有效5元素的属性的练习,定义dtd格式,并验证其文档有效6设计下面dtd文档格式,并验证其文档有效张强男300568 李琴 女301304实验3 在XML文档中使用Schema实验目的:1. 能参照示例XML文件进行对应的XML Schema定义;2. 能利用Schema对XML文件进行验证。实验内容:1简单内置数据类型练习,已经下面的xml文件,只含有一个元素, 显示自己的姓名信息,设计xsd文档,并验证,使之成为有
6、效的xml文档。张海林2简单内置数据类型练习,已经下面的xml文件,只含有一个元素,自定义分数score在0-100,用2种方法实现,设计xsd文档,并验证,使之成为有效的xml文档。803简单自定义简单数据类型练习,设计xsd文档,定义6位邮编显示下面格式,并验证,使之成为有效的xml文档。4设计下面文档格式, 包含自己姓名,学号,年龄多个子元素,其中年龄为20-30之间。 王林1001205已经下面的xml文件,设计xsd文档,并验证,使之成为有效的xml文档。文学类小说霍比特人托尔金452020-10-106根据下面的xml文档,设计xsd文档,并验证,使之成为有效的xml文档。1001
7、王方201003赵小红227根据下面的xml文档,需要限制密码的长度为6位,用户名的长度为6到8位,设计xsd文档,并验证,使之成为有效的xml文档。1011111234568已经下面的xml文件,设计xsd文档,并验证,使之成为有效的xml文档。汪军林利实验4 XML解析实验目的:1. 理解DOM节点层次;2. 掌握利用 DOM操作XML文件的方法;3. 掌握利用 SAX、DOM4j操作XML文件的方法;。实验内容:1已知下列Classes.xml 文件,利用 DOM显示XML文件信息。Classes.xml文件周星驰23学习刻苦林青霞 32是一个好学生2完成对题1中Classes.xml的
8、添加一条自己个人信息记录。3对题2中Classes.xml的自己个人信息记录把年龄修改为22岁。4已知对题1中Classes.xml 文件,利用 SAX显示XML文件信息。5已知对题1中Classes.xml 文件,利用DOM4J显示XML文件信息。6. 已知建立test.xml文件, 利用DOM4J显示XML文件信息。test.xml 8G 200 1580 10G 500 3000 实验5 表的基本操作与查询实验目的:1. 掌握Oracle表的创建与基本操作;2. 掌握索引、索引化表、分区、视图、序列、同义词功能。;3. 掌握子查询及order by 子句与GROUP BY用法;4. 掌握
9、SELECT 语句的统计函数的作用和使用方法;实验内容:1在ora11数据库中创建一个名为employee的表,要求:(empno NUMBER(5) PRIMARY KEY,ename VARCHAR2(15), hiredate date,sal NUMBER(7,2), deptno NUMBER(3) NOT NULL CONSTRAINT fk_emp REFERENCES dept,其中表中字段满足:empno设置为主键,sname字段设置惟一性约束,deptno为外键。2利用insert语句向employee表中插入一条新的记录:(2222,BILL, 02-12月-1980,2
10、0,30)。提示:用命令:Insert into 表名 values(2222,BILL, 02-12月-1980,20,30 )3利用update语句将emp表中编号为7499的职工comm佣金改为500。4利用delete语句将emp表中工资低于1000职工记录删除。5创建一个分区表emp_range(注意表结构为: EMPNO number(4),DEPTNO number(2) check( deptno in (10,20),SAL number(6),将职工信息根据工资不同进行分区,将工资在低于3000元职工信息保存在ORCLTBS1表空间中,工资在高于3000元职工信息保存在OR
11、CLTBS2表空间中。 利用emp添加相应数据. 答案参考:SQL insert into EMP_range select empno,deptno,sal from scott.emp where deptno in (10,20)6创建一个student_list表(注意表结构为: sno NUMBER(6) PRIMARY KEY,sname VARCHAR2(10),sex CHAR(2) CHECK(sex in (M,F), 按学生性别分为student_male与 student_female两个区,分别存放在表空间ORCLTBS1与表空间ORCLTBS2中。添加下面2条记录,
12、然后查询各个分区表信息。 SQL insert into student_list values(1000,aaa,M) SQL insert into student_list values(1001,bbb,F)7按部门编号创建分区表EMP_SELECT(注意表结构为: (EMPNO number(4),DEPTNO number(2) check( deptno in (10,20),SAL number(6),部门号为10放在DEPTNO_1区,存储在表空间ORCLTBS1与; 部门号为20放在DEPTNO_2区, 存储在表空间ORCLTBS2中,利用子查询把emp表的10号部门与20
13、号部门的员工信息添加到分区表中, 然后查询各个分区表信息。(参考课件)8针对emp表创建一个视图,包含数据为部门号为30的员工号,员工名及部门名称。9针对student表查询女同学的信息和女同学的人数。为SCOTT模式下的emp表创建一个公共同义词,名称为employee.10用创建一个Users表,按照下面表所示,设计表的结构,并且在UserType字段必须大于0且小于3,在UserPwd字段的默认值为111111。 编 号字 段 名 称数 据 结 构说 明1UserIdNUMBER用户编号2UserNameVARCHAR2 40用户名3UserTypeNUMBER 1用户类型(1表示管理用
14、户, 2表示普通用户)4UserPwdVARCHAR2 40密码参考: CREATE TABLE Users (UserIdNumber Primary Key, UserName Varchar2(40) NOT NULL UNIQUE, UserType Number(1) CHECK(UserType0 and usertype3), UserPwd Varchar2(6) DEFAULT(111111) );11创建序列USER_S,该序列为1-1000之间整数,自动增加1。使用该序列向表USERS中插入2条新的记录。12查询emp表中10号部门中工资高于2000的员工信息。13查询工
15、资高于1500的10号部门和20号部门的员工信息。14查询员工信息,并按员工所在的部门号升序、工资降序排序。15查询每个部门的部门号、员工数量、最低工资和平均工资。16查询部门平均工资高于2000的部门号、部门人数和部门平均工资。17查询20号部门员工号、员工名、工资、部门号和部门名称。(相等连接)。18查询30号部门员工的工资等级。(不相等连接)。19查询所有员工的员工号、员工名和该员工领导的员工名。(自身连接)。20查询所有的部门名和员工名。(全外连接) 实验6 PL/SQL程序设计实验目的:1. 掌握SQL 语言流程控制结构;2. 掌握游标的使用;实验内容:1编写一个PL/SQL块,输出
16、所有员工的员工名、员工号、工资和部门号2为工资小于2000元的员工增加200元。(用if语句)3输入一个员工号,修改该员工的工资,如果该员工为10号部门,工资增加100;若为20号部门,工资增加150;若为30号部门,工资增加200;否则增加300。用if语句完成P277.4利用FOR循环向temp_table表中插入50条记录.p279,temp_table表结构参考: CREATE TABLE temp_table(num_col NUMBER,info_col CHAR(10) 5根据输入的员工号,修改该员工工资。如果该员工工资低于1000,则工资增加200;如果工资在1000-2000
17、之间,则增加150;如果工资在2000-3000之间,则增加100;否则增加50。P2776根据输入的部门号查询某个部门的员工信息,部门号在程序运行时指定。(用游标)。7利用WHILE循环统计并输出各个部门的平均工资。 8修改员工的工资,如果员工的部门号为10,工资提高100;部门号为20,工资提高150;部门号为30,工资提高200;否则工资提高250。(用游标完成p285)。9使用游标提取部门10员工的姓名和工资。10修改员工号为1200的员工工资,将其工资提高100;如果该员工不存在,则向emp表中插入一个员工为号1200,工资为2000的员工。(见p287)。实验7 Oracle的存储
18、过程与触发器实验目的:1. 掌握Oracle 的存储过程与函数2. 掌握Oracle 的触发器实验内容:1创建一个函数,以员工号为参数,返回该员工的工资。P322(2-1)2创建一个存储过程,以部门号为参数,返回该部门的人数和最高工资。P3013创建一个以部门号为参数,返回该部门最高工资的函数。P3034创建一个触发器,禁止在休息日改变雇员信息。5为emp表创建一个触发器,当执行插入操作时,统计操作后员工人数;当执行更新工资操作时,统计更新后员工平均工资;当执行删除操作时,统计删除后各个部门的人数。P3136创建一个insert触发器,当在员工表EMP中插入一条新记录时,Deptno(部门号码
19、)必须是已经存在的部门号码,且Sal应该20000-8000之间。7创建一个after触发器,在dept表中修改某部门编号的记录时,修改其相应的EMP表中职工的部门编号。8创建一个触发器,禁止用户删除DEPT表中的记录9为emp表创建一个触发器,保证修改员工工资时,修改后的工资低于10号部门最高工资,同时高于10号部门的最低工资。P363实验8 Oracle数据库应用开发实验目的:1. 复习学过的基本知识;2. 把所学过的知识应用与实际; 3. 掌握java语言与Oracle数据库连接及开发流程。实验内容:1人事管理系统数据库表设计,其中包括:员工基本信息表、员工工资信息表、员工请假信息表、管理员表等。2图书管理系统数据库表设计,其中包括:图书信息表、借阅信息表、员工请假信息表、管理员表等。3学生成绩管理系统数据库表设计,其中包括:学生表、选课程信息表、成绩信息表、教师表等。18 第 18/18 页