Oracle大作业报告
《Oracle数据库开发》报告

目录一、实践名称 (1)二、实践题目 (1)三、实践目的 (1)四、实践内容与结果 (1)1、Oracle数据库的基本操作 (1)2、简单Visual Basic访问Oracle数据库 (15)3、VB/Oracle学生成绩管理系统 (20)五、实践小结 (33)《Oracle数据库开发》实训报告一、实践名称ORACLE数据库开发二、实践题目1、Oracle数据库的基本操作2、简单Visual Basic访问Oracle数据库3、VB/Oracle学生成绩管理系统三、实践目的1、初步掌握Oracle关系数据库语言2、掌握Oracle的操作与使用3、数据库的建立与管理、数据表的建立与操作等4、PL/SQL语言的使用与编程5、设计和开发一个小型数据库应用系统四、实践内容与结果1、Oracle数据库的基本操作(1)创建数据库与表首先,创建数据库,步骤如图所示:紧接着创建表,进入SQLPlus Worksheet ,执行以下命令,结果如图 创建账号CREATE USER "GL_0911030201_HONGDJ" PROFILE "DEFAULT"IDENTIFIED BY "HONGDINGJIN" DEFAULT TABLESPACE "USERS" ACCOUNT UNLOCK;GRANT "CONNECT" TO "GL_0911030201_HONGDJ"; GRANT "DBA" TO "GL_0911030201_HONGDJ"; 1、创建部门表CREATE TABLE "GL_0911030201_HONGDJ"."DEPARTMENTS" ("DEPARTMENTID"CHAR(3) NOT NULL, "DEPARTMENTNAME" CHAR(20) NOT NULL, "NOTE"CHAR(16), PRIMARY KEY("DEPARTMENTID"));2、创建员工表CREATE TABLE "GL_0911030201_HONGDJ"."EMPLOYEES" ("EMPLOYEEID"CHAR(6) NOT NULL, "NAME" CHAR(10) NOT NULL, "BIRTHDAY" DATE NOT NULL, "SEX" NUMBER(1) NOT NULL, "ADDRESS" CHAR(20), "ZIP" CHAR(6), "PHONENUMBER" CHAR(12), "EMAILADDRESS" CHAR(30) NULL, "DEPARTMENTID" CHAR(3) NOT NULL, PRIMARY KEY("EMPLOYEEID"), FOREIGN KEY("DEPARTMENTID") REFERENCES "GL_0911030201_HONGDJ"."DEPARTMENTS"("DEPARTMENTID"));3、创建工资表CREATE TABLE "GL_0911030201_HONGDJ"."SALARY" ("EMPLOYEEID" CHAR(6) NOT NULL, "INCOME" NUMBER(8, 2) NOT NULL, "OUTCOME" NUMBER(8, 2) NOT NULL, PRIMARY KEY("EMPLOYEEID")) ;(2)表数据的插入、修改和删除在SQLPlus Worksheet执行如下命令,结果如图1、插入部门表数据INSERT INTO "GL_0911030201_HONGDJ"."DEPARTMENTS" ("DEPARTMENTID" ,"DEPARTMENTNAME" ,"NOTE" ) VALUES ('1' ,'财务部' ,'' );……2、插入职工表数据INSERT INTO "GL_0911030201_HONGDJ"."EMPLOYEES" ("EMPLOYEEID" ,"NAME" ,"BIRTHDAY" ,"SEX" ,"ADDRESS" ,"ZIP" ,"PHONENUMBER" , "EMAILADDRESS" ,"DEPARTMENTID" )V ALUES ('000001' ,'王林' ,'23-1月-1956' ,1 ,'中山路32-1-508' ,'210003' ,'3355668' ,'wl@' ,'2' );……3、插入工资表数据INSERT INTO "GL_0911030201_HONGDJ"."SALARY" ("EMPLOYEEID" ,"INCOME" ,"OUTCOME" ) V ALUES ('000001' ,2100.8 ,123.09 );……(3)索引和完整性在执行如下命令,结果如图1、建立索引2、实现域完整性1、SELECT语句的基本使用(1)查找在财务部工作的雇员的情况(2)查找财务部年龄不低于研发部雇员年龄的雇员的姓名(1)查询每个雇员的情况及其薪水的情况(2)查找财务部收入在2200元以上的雇员姓名及其薪水情况4、数据汇总(1)求财务部雇员的平均水平(2)求财务部雇员的平均实际收入5、GROUP BY、ORDER BY 子句的使用(1)求各部门的雇员数(2)将各雇员的情况按收入由低到高排列6、视图(1)创建视图——限制查看雇员的某些情况(2)使用视图查询财务部雇员的信息张无忌从经理办公室转到市场部把张无忌从表EMPLOYEES中删除(5)PL/SQL编程1、条件结构的使用(例5.5)2、循环结构的使用(例5.9)3、选择和跳转语句(例5.13)4、自定义函数的使用(例5.27)例5.28(6)存储过程和触发器的使用1、创建触发器(1)修改DEPARTMENTS表中的DEPARTMENTID字段值(2)删除DEPARTMENTS表中一条记录的同时删除该记录DEPARTMENTID字段在EMPLOYEES表中对应的记录2、创建存储过程(1)添加职员记录的存储过程(2)修改职员记录的存储过程(3)删除职员记录的存储过程3、调用存储过程1、创建用户2、创建角色3、创建概要文件2、简单Visual Basic访问Oracle数据库首先是建立数据源,步骤如下:(1)选择“开始”→“程序”→“管理工具”→“数据源”(ODBC)命令。
Oracle报告

实验报告实验项目名称:角色和用户管理, 表和视图管理20011年3月20日一、实验目的1)了解Oracle数据库用户和角色的概念2)学习使用SQL语句创建Oracle用户3)学习使用SQL语句创建Oracle角色4)学习使用SQL语句指定用户的角色5)了解Oracle表和视图的概念6)学习使用SQL语句创建表7)学习使用SELECT语句查询数据8)学习使用SQL语句创建视图二、实验内容1)练习使用SQL语句创建数据库角色。
2)练习使用SQL语句为数据库角色授予权限。
3)练习使用SQL语句指定用户角色。
4)练习使用SQL语句创建数据库用户。
5)练习使用SQL语句创建表。
6)练习使用SQL语句向表中插入数据。
7)练习使用SQL语句修改表中数据。
8)练习使用SQL语句删除表中数据。
9)练习使用SELECT语句查询数据。
10)练习使用SQL语句创建视图。
三、使用仪器、材料Oracle Database 10g四、实验步骤和实验记录1、使用SQL语句创建数据库角色1)以SYSTEM用户登录到iSQL*Plus。
2)使用CREATE ROLE语句创建数据库角色UserManRole,密码为myrollpwd,代码如下:2、使用SQL语句为数据库角色授权1)以SYSTEM用户登录到iSQL*Plus。
2)使用GRANT语句将角色UserManRole授予CONNECT、RESOURSE和UNLIMITED TABLESPACCE权限,代码如下:3、使用SQL语句创建数据库用户1)以SYSTEM用户登录到iSQL*Plus。
2)使用CREATE USER语句创建用户UserManAdmin,密码为UserPwd,使用GRANT语句对用户UserManAdmin授予系统权限UNLIMITED TABLESPACE,代码如下:4、使用SQL语句指定用户角色参照下面的步骤将用户UserMan指定为角色UserManRole。
昆明学院ORACLE数据库应用大作业报告20191028

课程设计(大作业)报告课程名称:Oracle数据库应用设计题目:图书借阅管理系统院系:信息工程学院专业及班级:17计算机科学与技术二班设计者:刘旭学号:指导教师:**设计完成时间:2019年12月17日昆明学院昆明学院课程设计(大作业)任务书目录课程设计(大作业)报告 (1)昆明学院课程设计(大作业)任务书 (I)一、任务要求 (1)二、解决步骤 (1)1. 背景分析 (1)2. 需求分析 (2)3. 总体设计 (4)3.1表结构设计 (4)3.2总体设计ER图 (6)3.3总体设计类图 (7)4. 详细设计 (7)4.1数据字典 (11)4.2数据库实现 (15)4.3插入数据 (21)4.3图书管理系统测试 (25)4.4图书管理系统修改 (29)三、心得体会 (32)四、参考文献 (32)课程设计(大作业)报告一、任务要求Oracle数据库应用大作业使学生通过对Oracle数据库基础知识的学习,掌握Oracle数据库基本操作,使学生掌握应用Oracle数据库所必须的所有核心概念和内容,在这个过程中激发学生学习的兴趣,并为后续的专业课程的学习打下坚实的基础。
在课后几周,给学生布置一个Oracle数据库平台应用的任务。
学生在教师的指导下,以任务驱动方式使学生们熟练掌握Oracle数据库的基本应用。
具体要求:1.各小组请参看教材第236页,自选课题设计管理系统数据库;2.请将所学知识和技能充分运用到所设计的管理系统数据库中;3.要求数据库系统能正常运行,可进行查询;查询的复杂程度将最终决定该小组的得分高低。
(自拟查询任务并实现,小组内每位同学的查询任务应有区分);4.在所设计的数据库中尽可能多的创建数据库对象;5.文档撰写规范、整齐,图文并茂。
二、解决步骤1.背景分析图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书馆都是初步开始使用,甚至尚未使用计算机进行信息管理。
oracle大型数据库实验报告4

五、思考题及其它1、显示游标和隐式游标在用法上的区别?2、raise语句应该放在PL/SQL块的哪个部分?当在异常和oracle错误之间建立关联时,应该在哪个部分完成?3、实验报告要求本次实验书写两次,分别是(一)和(二)、(三)和(四)实验六:过程、函数、触发器实验学时:4实验类型:设计型一.实验目的及要求1.掌握过程的创建与维护;2.掌握函数的创建与维护;3.掌握触发器的创建于维护;4.了解包的使用。
二、实验主要内容1.过程的创建与维护;2.函数的创建与维护;3.触发器的创建于维护;4.包的使用。
三、实验仪器设备在局域网环境下,有一台服务器和若干台客户机。
服务器成功安装Oracle 11g数据库服务器(企业版),客户机成功安装Oracle 11g客户端软件,网络服务配置正确,数据库和客户端正常工作。
四、实验内容与步骤(一)、过程的创建与维护1、编写一个过程,可以输入一个雇员名,如果该雇员的的职位为PRESIDENT就给他的工资增加1000,如果该雇员的职位为MANAGER,就给他的工资加500,其他职位的雇员工资增加200。
并在SQL*PLUS中调用该过程以修改FORD的工资。
2、创建一个过程avg_sal,用于输出emp表中某个部门的平均工资,并在PL/SQL匿名块中调用该过程输出20号部门的平均工资。
3、从雇员基本信息表(EMP)中统计各部门(DEPTNO)人数后,将结果打印出来。
(选做)CREATE OR REPLACE PROCEDURE SUM_COUNT IS--创建一个游标,查询dept所有的部门编号Dept_cursor %ROWTYPE; --定义一个游标类型的变量--定义一个变量来存储部门人数BEGIN--打开游标LOOPINTO Dept_cursor;--读取游标SELECT COUNT(*) INTO num FROM empWHERE deptno= Dept_cursor.deptno;/*--填充代码,打印输出部门号及其对应的部门人数*/EXIT WHEN %NOTFOUND;--退出循环END LOOP;--关闭游标COMMIT;END;--执行存储过程sum_count(二)、函数的创建与维护1、创建一个函数get_sum_salary,获取某部门的人数(out参数)和工资总和(返回值)。
oracle 工作总结

oracle 工作总结
《Oracle 工作总结》。
在过去的一段时间里,我一直在公司的Oracle团队工作。
在这段时间里,我学到了很多关于Oracle数据库管理和优化的知识,也积累了丰富的工作经验。
在这篇文章中,我将对我的工作进行总结,并分享一些我在Oracle工作中的收获和体会。
首先,我要谈谈我在Oracle数据库管理方面的工作。
在这个岗位上,我负责监控数据库的运行状态,确保数据库的稳定性和安全性。
我学会了如何定期备份数据库,以防止数据丢失。
我还学会了如何优化数据库的性能,通过调整参数和索引来提高数据库的查询效率。
在这个过程中,我遇到了很多问题,但通过不断学习和实践,我逐渐掌握了数据库管理的技巧和方法。
其次,我还要谈谈我在Oracle数据库优化方面的工作。
在这个岗位上,我负责分析数据库的性能问题,并提出优化建议。
我学会了如何通过SQL调优来提高数据库的查询速度,如何通过合理的索引设计来减少数据库的IO负载。
我还学会了如何通过分区表和分区索引来提高数据库的并发处理能力。
通过这些工作,我深入了解了Oracle数据库的优化原理和方法,也提高了自己的技术水平。
总的来说,我的Oracle工作经历让我受益良多。
我不仅学会了数据库管理和优化的技术,也锻炼了自己的分析和解决问题的能力。
我相信,在未来的工作中,我会继续努力学习,不断提高自己的技术水平,为公司的发展贡献自己的力量。
感谢公司给予我这次宝贵的工作机会,我会继续努力,不辜负公司的期望。
oracle数据库大作业

o r a c l e数据库大作业-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII2013-2014学年第二学期《大型数据库技术》考查报告课题名称:图书管理系统系统班级: 11软工java2班学号: 1115115020姓名:戴春奇成绩:2014年5月1.课题概述1.1 课题简介随着社会的发展,人们对知识的需求也不断的增长。
在这种形式下,人们就要不断的学习,不断的给自己充电,而图书馆就自然而然地在人们的生活中占据了一定的位置,如何科学的管理图书馆不但关系到读者求知的方便程度,也关系到图书馆的发展。
图书馆作为一种信息资源的集散地,用户借阅资料繁多,包含很多的信息数据的管理。
现今,有很多的图书馆都是初步开始使用,有些甚至尚未使用计算机进行信息管理。
数据信息处理工作量大,容易出错;用于数据繁多,容易丢失,且不易查找。
总的来说,缺乏系统,规范的信息管理手段。
尽管有的图书馆有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出。
因此一个好的图书馆管理系统是非常重要的。
1.2 功能描述1.登录模块用户登录:用户在登陆页面登陆,登陆成功进入系统。
管理员登陆:用于管理员的登陆,在后台登陆页面登陆,登陆成功进入系统。
图书管理员与系统管理员后台功能不一样。
查询用户表,对应用户名、密码正确则进入系统,对应用户名密码不正确则显示相应信息。
2.图书管理模块对图书进行添加、查询、修改、删除、添加。
将输入的图书信息添加到数据库图书表中,以方便进行各种查询及更新操作,根据输入的图书名称或作者,查询数据库图书表中的相应记录并显示相应图书信息,更新数据库图书表中对应记录并显示更新后的图书信息,删除数据库图书表中对应记录。
3.副本信息模块对图书的副本信息进行添加、修改、删除。
将输入的图书副本信息添加到副本表中,并分配一个独立的中南码根据输入的中南码或国际标准图书编码,查询图书副本表,显示副本信息更新副本表的数据库、删除副本表中所对应的图书信息、修改副本表中错误的信息并更新数据库。
大型数据库oracle实验报告

实验报告课程名称:大型数据库系统实验项目:数据库实验实验地点:逸夫楼502专业班级:软件12xx 学号:201200xxxx 学生姓名:xx指导教师:宋成明2015年4月11日实验1创建数据库和表及表数据的插入、修改和删除一、实验目的和要求1.学会使用SQL语句手工出创建数据库,创建表;2.学会使用PL/SQL语句对数据库表进行插入、修改和删除数据的操作;3.学会使用SQL DEVELOPER对数据库表进行插入、修改和删除数据的操作;4.了解数据更新操作时要注意数据完整性;5.了解PL/SQL语句对表数据操作的灵活控制功能。
二、实验内容和原理分别使用SQL Developer和PL/SQL语句,在实验二建立的数据库YGGL或实验一随安装Oracle 11g时建立的数据库中所建立的三个表Employees, Departments和Salary中分别插入多行数据记录,然后修改和删除一些记录。
使用PL/SQL进行有限制的修改和删除。
表的内容如教材p311页所示。
使用PL/SQL命令操作数据。
内容如教材p312页所要求,给出相应语句段及结果截图。
三、主要仪器设备——系统运行的软硬件环境1.HP 6470b笔记本win7 32位系统2.Oracle 11g大型数据库及其相应的配套软件四、实验结果与分析1.在scott用户中创建表(1)Employees(员工信息表)表create table Employees(EmployeeID char(6) primary key,Name char(10) not null,Birthday date not null,Sex number(1) not null,Address char(20),Zip char(6),PhoneNumber char(12),DepartmentID char(3) not null);查看创建后的Employees表(2)Departments(部门信息)表create table Departments(DepartmentID char(3) primary key,DepartmentName char(20) not null,Note varchar2(100));查看创建后的Departments表(3)Salary(员工薪水情况)表create table Salary(EmployeeId char(6) primary key,InCome number(8,2) not null,OutCome number(8,2) not null);查看创建后的Salary表2.向表中插入数据(1)在Employees表中插入数据insert into employees values('000001','王林',to_date('19960123','YYYYMMDD'),1,'中山路32',210003,83355668,2); insert into employees values('010008','吴荣华',to_date('19760123','YYYYMMDD'),1,'北京东路',210001,83321321,1); insert into employees values('020010','王向荣',to_date('19821209','YYYYMMDD'),1,'四牌楼',210006,83792361,1); insert into employees values('020018','李丽',to_date('19600730','YYYYMMDD'),0,'中山东路',210002,83413301,1); insert into employees values('102201','刘明',to_date('19721018','YYYYMMDD'),1,'虎踞路',210013,83606608,5); insert into employees values('102208','朱俊',to_date('19650928','YYYYMMDD'),1,'牌楼巷',210004,84708817,5); insert into employees values('108991','钟敏',to_date('19790810','YYYYMMDD'),0,'中山路10',210003,83346722,3); insert into employees values('111006','张石兵',to_date('19741001','YYYYMMDD'),1,'解放路',210010,84563418,5); insert into employees values('210678','林涛',to_date('19770402','YYYYMMDD'),1,'中山北路',210008,83467336,3); insert into employees values('302566','李玉珉',to_date('19680920','YYYYMMDD'),1,'热河路',210001,58765991,4); insert into employees values('308759','叶凡',to_date('19781118','YYYYMMDD'),1,'北京西路',210002,83308901,4); insert into employees values('504209','陈林琳',to_date('19690903','YYYYMMDD'),1,'汉中路',210018,84468158,4);查看插入数据后的Employees表(2)在Departments表中插入数据insert into Departments values('1','财务部','null');insert into Departments values('2','人力资源部','null');insert into Departments values('3','经理办公室','null');insert into Departments values('4','研发部','null');insert into Departments values('5','市场部','null');查看插入数据后的Departments表(3)在Salary表中插入数据insert into Salary values('000001',2100.8,123.09);insert into Salary values('010008',1582.62,88.03);insert into Salary values('102201',2569.88,185.65);insert into Salary values('111006',1987.01,79.58);insert into Salary values('504209',2066.15,108.0);insert into Salary values('302566',2980.7,210.2);insert into Salary values('108991',3259.98,281.52);insert into Salary values('020010',2860.0,198.0);insert into Salary values('020018',2347.68,180.0);insert into Salary values('308759',2531.98,199.08);insert into Salary values('210678',2240.0,121.0);insert into Salary values('102208',1980.0,100.0);查看插入数据后的Salary表3.在表中修改数据例如:修改表Salary中某个记录的字段值update Salary set INCOME = 2890.5 where EmployeeID = '000001';查看修改后的数据4.在表中删除数据例如:删除表Salary中一行记录delete from Salary where EmployeeID = '000001';查看删除后的数据五、讨论、心得通过本次实验,对oracle的PL/SQL数据库建立语句、建表语句以及数据操作语句DML有了更加熟练的掌握和操作。
ORACLE实验大作业

ORACLE实验⼤作业⼤型作业报告课程名称数据库系统⼤型作业。
课程代码141310901/02 .姓名。
专业信息管理与信息系统。
班级2011131 .上海电⼒学院经济与管理学院数据库系统⼤型作业评分表考核形式及成绩评定办法⼤型作业最终每个学⽣的总评成绩分三个部分组成:1课程设计报告质量;2平时表现;3答辩情况。
具体⽐例为40:10:50。
每个部分的具体评分标准如下:1、课程设计报告:项⽬分数备注课程设计报告的质量备注:课程设计报告的质量40%,分4个等级:1、按要求格式书写,符合任务书的要求。
其中选择题错误在0~5个之间,简答题内容基本没有错误。
30-402、基本按要求格式书写,基本符合任务书的要求。
其中选择题错误在5~8个之间,简答题内容有少量错误。
30-203、基本按要求格式书写,基本符合任务书的要求。
其中选择题错误在 8~12个之间,简答题内容错误较多。
20-105、基本按要求格式书写,不符合任务书的要求。
其中选择题错误在12~15个之间,简答题内容错误较多。
0-102、平时表现:项⽬分数备注平时表现备注:课程设计过程中的⼯作态度10%,分4个等级:1、很好,积极参与,答疑及出勤情况很好9-102、良好,⽐较能积极参与,答辩情况良好但有少量缺勤记录,或答辩情况⼀般但出勤情况良好6-83、⼀般,积极性不是很⾼,基本没有答疑记录,出勤情况较差3-54、⽋佳,不认真投⼊,且缺勤很多,也没有任何答辩记录0-23、课程设计答辩分数:项⽬分数备注答辩表现50%,分4个等级:1、应对良好,能准确回答⽼师提问40-502、在提⽰下能回答⽼师提问25-403、能回答部分提问10-254、回答不出问题0-10总评分数:ORACLE实验⼤作业⼀、题型1.笔试部分:1.1多选题1.2简答题2.上机操作分部:2.1将笔试部分的简答题进⾏上机操作,并将答案进⾏⼯具进⾏截图,⽣成实验报告。
2.2根据给定的E-R图,在数据库中创建相应的对象,并根据需求查询结果,将结果截图,成⽣实验报告。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
项目数据库设计报告名称:关于商品订售的数据字典_Oracle学院:计算机与信息学院目录一、引言 (3)1编写目的 (3)2项目背景 (3)3设计环境 (3)4小组分工 (3)二.、结构设计 (3)1 概念结构设计 (3)2 编码规范 (3)2.1数据库 (3)2.2数据表 (4)2.3 字段 (4)2.4逻辑结构设计 (4)三、E-R图 (4)1 CDM图 (6)2 PDM图 (7)四、生成oracle数据库 (7)五、测试用例 (13)1 员工表 (13)2 顾客表 (13)3 工令表 (13)4 派送表 (14)5 订单表 (14)6 产品表 (14)7 发票表 (14)8 员工表 (14)9 库存表................................................................................................. 错误!未定义书签。
六、授权 (14)七、触发器 (15)一、引言1编写目的此文档仅供本开发小组内部使用。
通过此文档比较直观的说明数据库的结构以及各数据库表之间的关系。
同时规定数据库,数据库表,各字段的命名规范以及表中字段的类型、大小包括字段说明。
2项目背景说明:待开发的数据库暂定名称为商品订购 ,其中包括8张数据表;该数据库设计项目的任务提出者:XXX销售公司用户:程序开发人员注:该软件和数据库最终面向在各销售公司3设计环境PowerDesigner 15.0SQLplus4小组分工二.、结构设计1 概念结构设计本数据库设计为oracle平台2 编码规范2.1数据库数据库命名以数据库相关英文单词命名。
2.2数据表数据表命名2.3 字段字段一般采用英文单词或词组命名(可用翻译软件),无专业名词可用相近意义单词或词组代替。
如表所示:字段命名示例2.4逻辑结构设计一、相关数据字典(增加处红色标示,删除处蓝色标示,黄色为原因)三、E-R图1 CDM图2 PDM图四、生成oracle数据库以下为代码部分:/*==============================================================*/ /* DBMS name: ORACLE Version 10g */ /* Created on: 2013-12-4 18:18:37 *//*==============================================================*/alter table "delivery"drop constraint FK_DELIVERY_DELTOORD_ORD;alter table "emp"drop constraint FK_EMP_EMP_DEPT_DEPART;alter table "invoice"drop constraint FK_INVOICE_INTOORD_ORD;alter table "ord"drop constraint FK_ORD_REQUEST_CUSTOMER;alter table "ord"drop constraint FK_ORD_SERVE_EMP;alter table "orderdetail"drop constraint FK_ORDERDET_GOODSTODE_PROSTOCK;alter table "orderdetail"drop constraint FK_ORDERDET_ORDERTODE_ORD;alter table "wip"drop constraint FK_WIP_WIP_HAPPE_PROSTOCK;drop table "customer" cascade constraints;drop index "deltoord_FK";drop table "delivery" cascade constraints;drop table "depart" cascade constraints;drop index "emp_dept_FK";drop table "emp" cascade constraints;drop index "intoord_FK";drop table "invoice" cascade constraints;drop index "request_FK";drop index "serve_FK";drop table "ord" cascade constraints;drop index "goodstodetail_FK";drop index "ordertodetail_FK";drop table "orderdetail" cascade constraints;drop table "prostock" cascade constraints;drop index "wip_happend_FK";drop table "wip" cascade constraints;/*==============================================================*/ /* Table: "customer" *//*==============================================================*/ create table "customer" ("custid" VARCHAR2(10) not null,"custname" VARCHAR2(22),"custadd" VARCHAR2(20),"custphone" VARCHAR2(12),"custfax" VARCHAR2(12),constraint PK_CUSTOMER primary key ("custid"));/*==============================================================*/ /* Table: "delivery" *//*==============================================================*/ create table "delivery" ("delino" VARCHAR2(10) not null,"ordid" VARCHAR2(10),"carno" VARCHAR2(10),constraint PK_DELIVERY primary key ("delino"));/*==============================================================*/ /* Index: "deltoord_FK" *//*==============================================================*/ create index "deltoord_FK" on "delivery" ("ordid" ASC);/*==============================================================*/ /* Table: "depart" *//*==============================================================*/ create table "depart" ("deptno" NUMBER(2) not null, "deptname" VARCHAR2(10),"loc" VARCHAR2(13),constraint PK_DEPART primary key ("deptno")/*==============================================================*/ /* Table: "emp" */ /*==============================================================*/ create table "emp" ("empid" VARCHAR2(10) not null, "deptno" NUMBER(2),"empname" VARCHAR2(10),"empadd" VARCHAR2(20),"empphone" VARCHAR2(12),"email" VARCHAR2(20),"mgr" VARCHAR2(10),"hiredate" DATE,"sal" NUMBER(10),"comm" NUMBER(7,2),"pro" VARCHAR2(12),"educa" VARCHAR2(12),"exper" VARCHAR2(20),constraint PK_EMP primary key ("empid"));/*==============================================================*/ /* Index: "emp_dept_FK" */ /*==============================================================*/ create index "emp_dept_FK" on "emp" ("deptno" ASC);/*==============================================================*/ /* Table: "invoice" *//*==============================================================*/ create table "invoice" ("invid" VARCHAR2(10) not null,"ordid" VARCHAR2(10),"money" NUMBER(10),constraint PK_INVOICE primary key ("invid"));/*==============================================================*/ /* Index: "intoord_FK" *//*==============================================================*/ create index "intoord_FK" on "invoice" ("ordid" ASC/*==============================================================*/ /* Table: "ord" *//*==============================================================*/ create table "ord" ("ordid" VARCHAR2(10) not null,"empid" VARCHAR2(10),"custid" VARCHAR2(10),"orddate" DATE,"d_date" DATE,constraint PK_ORD primary key ("ordid"));/*==============================================================*/ /* Index: "serve_FK" *//*==============================================================*/ create index "serve_FK" on "ord" ("empid" ASC);/*==============================================================*/ /* Index: "request_FK" *//*==============================================================*/ create index "request_FK" on "ord" ("custid" ASC);/*==============================================================*/ /* Table: "orderdetail" *//*==============================================================*/ create table "orderdetail" ("ordid" VARCHAR2(10) not null,"proid" VARCHAR2(10) not null,"o_qty" NUMBER(20),constraint PK_ORDERDETAIL primary key ("ordid", "proid"));/*==============================================================*/ /* Index: "ordertodetail_FK" *//*==============================================================*/ create index "ordertodetail_FK" on "orderdetail" ("ordid" ASC);/*==============================================================*/ /* Index: "goodstodetail_FK" *//*==============================================================*/ create index "goodstodetail_FK" on "orderdetail" ("proid" ASC);/*==============================================================*/ /* Table: "prostock" *//*==============================================================*/ create table "prostock" ("proid" VARCHAR2(10) not null,"proname" VARCHAR2(20),"stiqty" NUMBER(10),"insqty" NUMBER(10),constraint PK_PROSTOCK primary key ("proid"));/*==============================================================*/ /* Table: "wip" */ /*==============================================================*/ create table "wip" ("wipid" VARCHAR2(10) not null, "proid" VARCHAR2(10),"w_qty" NUMBER(10),constraint PK_WIP primary key ("wipid"));/*==============================================================*/ /* Index: "wip_happend_FK" */ /*==============================================================*/ create index "wip_happend_FK" on "wip" ("proid" ASC);alter table "delivery"add constraint FK_DELIVERY_DELTOORD_ORD foreign key ("ordid") references "ord" ("ordid");alter table "emp"add constraint FK_EMP_EMP_DEPT_DEPART foreign key ("deptno") references "depart" ("deptno");alter table "invoice"add constraint FK_INVOICE_INTOORD_ORD foreign key ("ordid")references "ord" ("ordid");alter table "ord"add constraint FK_ORD_REQUEST_CUSTOMER foreign key ("custid")references "customer" ("custid");alter table "ord"add constraint FK_ORD_SERVE_EMP foreign key ("empid")references "emp" ("empid");alter table "orderdetail"add constraint FK_ORDERDET_GOODSTODE_PROSTOCK foreign key ("proid") references "prostock" ("proid");alter table "orderdetail"add constraint FK_ORDERDET_ORDERTODE_ORD foreign key ("ordid")references "ord" ("ordid");alter table "wip"add constraint FK_WIP_WIP_HAPPE_PROSTOCK foreign key ("proid")references "prostock" ("proid");五、测试用例1 部门表insert into "depart"("deptno","deptname","loc") values ('36','后勤部','上海');2 顾客表Insert INTO "customer" values ('C026','现代炸药股份有限公司','上海市德平路','(021)-122222','(020)-133333');3 工令表insert into "wip"("wipid","proid","w_qty")values('W026','P005','30');4 派送表insert into "delivery" values('D026','CR26','A1-1111');5 订单表insert into "ord" ("ordid","empid","custid","orddate","d_date") values('CR26','00807','C026',to_date('30/09/91','dd/mm/yy'),to_date('11/10/91','dd/mm/yy'));6 产品表insert into "prostock" ("proid","proname","stiqty","insqty") values('P006','f','30','10');7 发票表insert into "invoice" ("invid","ordid","money") values('I006','CR26','60000');8 员工表Insert INTO "emp" ("empid","deptno","empname","empadd","empphone","email","mgr","hiredate","sal","comm"," pro","educa","exper")values ('00807','36','Wuzj','上海市人民路','(021)-123456','xxx@','Abel',to_date('29/09/91','dd/mm/yy'),'32000','1000','领班','本科','一年');六、授权以下是代码部分:create user czh identified by czhgrant create session to czhgrant select on system."emp" to czhgrant select on system."prostock" to czhgrant select on system."wip" to czhgrant select on system."depart" to czhgrant select on system."customer" to czhgrant select on system."ord" to czhgrant select on system."delivery" to czhgrant select on system."invoice" to czhcreate user hzn identified by hzngrant create session to hzngrant update,insert,delete on system."emp" to hzngrant update,insert,delete on system."prostock" to hzngrant update,insert,delete on system."wip" to hzngrant update,insert,delete on system."depart" to hzngrant update,insert,delete on system."customer" to hzngrant update,insert,delete on system."ord" to hzngrant update,insert,delete on system."delivery" to hzngrant update,insert,delete on system."invoice" to hzn七、触发器以下是代码部分:create trigger insertwip after insert on ord for each rowdeclarev_num number(7,0);v_id wip.wipid%type;beginselect sum(stiqty) into v_num from stock where proid=:new.proid;select max(wipid) into v_id from wip;if v_num<:new.ordqty theninsert into wip values(v_id+1,:new.proid,:new.ordqty-v_num,sysdate,:new.d_date);end if;end;。