orcale课程设计实训报告

上传人:re****.1 文档编号:464671190 上传时间:2022-10-24 格式:DOC 页数:25 大小:649.50KB
返回 下载 相关 举报
orcale课程设计实训报告_第1页
第1页 / 共25页
orcale课程设计实训报告_第2页
第2页 / 共25页
orcale课程设计实训报告_第3页
第3页 / 共25页
orcale课程设计实训报告_第4页
第4页 / 共25页
orcale课程设计实训报告_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《orcale课程设计实训报告》由会员分享,可在线阅读,更多相关《orcale课程设计实训报告(25页珍藏版)》请在金锄头文库上搜索。

1、保定职业技术学院课程设计报告系计算机信息工程系专业软件开发班级0901姓名学号0401题目指导教师完成时间2010年12月12日指导教师情况姓名技术职称单位指导教师评语:成绩:指导教师签字:年 月 日内容摘要1第一章 绪论2第二章 功能实现2实训七:PL/SQL编程2实训八:存储过程和触发器6实训九:序列、同义词 、程序包11实训十:oracle数据库安全管理14实训十一:数据库的备份和恢复17后记211 内容摘要Oracle是当今最大的数据库公司Oracle(甲骨文)的数据库产品。它的前身是创建于1977年的,位于美国加州的Relational Software公司。该公司与1979年推出了

2、世界上第一个基于SQL标准的关系数据库管理系统Oracle 1 ,同年又推出产品Oracle 2它采用标准的SQL(结构化查询语言),支持多种数据类型,并面向对象。支持UNIX、LINUX、Window NT/2000、OS/2等操作系统平台,支持客户机/服务器工作模式和Web工作模式。数据库是存放数据、表、视图、存储过程等数据库对象的容器。因此,操作数据库对象应先从操作数据库开始。本章介绍数据库操作的基本知识,包括数据库的创建、查看、修改、分离、附加和删除等操作。关键字:存储过程 触发器 视图 游标第一章 绪论Oracle是目前最流行的关系数据库管理系统,被越来越多的用户在信息系统管理、企业

3、数据处理、Internet、电子商务网站等领域作为应用数据的后台处理系统。Oracle从基本概念和实际应用出发,由浅入深、循序渐进地讲述Oracle数据库基础知识,数据库创建,表的操作,数据查询及PL/SQL编程技术,索引和视图的应用,存储过程和触发器的应用,数据库安全管理,备份与恢复等内容。Oracle系统为数据库管理员提供了多种工具来完成数据库的管理工作,既可以使用命令行为创建和删除数据库,也可以通过数据库配置助手DBCA工具来创建和删除数据库。前者适合专业人员使用;后者提供图形化界面,具有操作导航功能。第二章 功能实现实训七:PL/SQL编程1、创建函数“get_total_num”,根

4、据专业代码统计本专业的总人数。创建函数“get_num_percent”,根据不同班级,显示该班级学生人数在本专业学生总人数中的比例。创建函数“get_total_num”create or replace function get_total_num(v_专业代码 班级表.专业代码%type)return numberas v_总人数 班级表.班级人数%type;begin select sum(班级人数) into v_总人数 from 班级表 where 专业代码=v_专业代码; return v_总人数;end get_total_num;创建函数“get_num_percent”cr

5、eate or replace function get_num_percent(v_班级名称 班级表.班级名称%type)return numberas v_班级人数 班级表.班级人数%type; v_总人数 班级表.班级人数%type; v_专业代码 班级表.专业代码%type; v_percent number;begin select sum(班级人数),专业代码 into v_班级人数,v_专业代码 from 班级表 where 班级名称=v_班级名称; select sum(班级人数) into v_总人数 from 班级表 where 专业代码=v_专业代码; v_percent

6、:=v_班级人数/v_总人数; return v_percent;end get_num_percent;2、使用游标调用get_num_percent函数.declare cursor c_班级 is select 班级名称 from 班级表 order by 班级代码; v_percent number(9,2); v_班级名称 班级表.班级名称%type;begin open c_班级; loop fetch c_班级 into v_班级名称; exit when c_班级%notfound; v_percent:=get_num_percent(v_班级名称); dbms_output

7、.put_line(v_班级名称|人数占本专业人数的比例为:|v_percent);end loop;close c_班级;end;(该功能未实现)3、使用游标调用get_total_num函数.declarecursor c_系部 is select * from 系部表 order by 系部代码;cursor c_专业(v_系部代码 系部表.系部代码%type) is select 专业名称,专业代码 from 专业表 where 系部代码=v_系部代码 order by 专业代码;v_系部 系部表%rowtype;v_专业人数 班级表.班级人数%type;v_总人数 班级表.班级人数%

8、type;v_专业名称 专业表.专业名称%type;v_专业代码 专业表.专业代码%type;beginopen c_系部;loopfetch c_系部 into v_系部;exit when c_系部%notfound;dbms_output.put_line(系部:|v_系部.系部名称);v_总人数:=0;open c_专业(v_系部.系部代码);loopfetch c_专业 into v_专业名称,v_专业代码;exit when c_专业%notfound;v_专业人数:=get_total_num(v_专业代码);dbms_output.put_line(v_专业名称|专业总人数为:

9、|v_专业人数);v_总人数:=v_总人数+v_专业人数;end loop;close c_专业;dbms_output.put_line(总人数为:|v_总人数);end loop;close c_系部;end;实训八:存储过程和触发器1、在数据库中创建“xs_proc”存储过程,按输入的学号查询相应的学生姓名和班级信息,如果没有该学生,进行异常处理。创建完成后,执行该存储过程。创建“xs_proc”存储过程create or replace procedure xs_proc(xh in 学生表.学号%type, xm out 学生表.姓名%type, bjdm out 学生表.班级代码%

10、type)asbeginselect 姓名,班级代码 into xm,bjdm from 学生表where 学号=xh;dbms_output.put_line(姓名:|xm);dbms_output.put_line(班级代码:|bjdm);exceptionwhen no_data_found then dbms_output.put_line(不存在该学生!|xh);end;执行xs_proc存储过程declare v_xm varchar2(10);v_bjdm varchar2(20);beginxs_proc(060101001001,v_xm,v_bjdm);end;2、创建教师

11、副表,用来存放从教师表中删除的数据记录.创建触发器trig_del_js,实现该功能.创建教师副表 create table 教师副表(教师编号 varchar2(20 byte) not null, 教师姓名 varchar2 (10 byte) not null, 性别 varchar2(10 byte) not null, 出生日期 date, 学历 varchar2(20 byte) not null, 职称 varchar2(10 byte) not null, 系部代码 varchar2(10 byte) not null, 备注 varchar2(30 byte) );创建触发器

12、trig_del_jscreate trigger trig_del_jsafter delete on 教师表for each rowbegininsert into 教师副表values(:old.教师编号,:old.教师姓名,:old.性别,:old.出生日期,:old.学历,:old.职称,:old.系部代码,:old.备注);end del_xs;delete 教师表 where 教师姓名=刘辉;创建触发器,使得对“教师表”的插入、删除、更新操作可以出发对“教师任课表”的插入、删除、更新。创建触发器“tri_stu_ins”create or replace trigger trig

13、_js_insbefore insert on 教师表for each rowbegininsert into 教师任课表(教师编号)values(:new.教师编号);end;insert into 教师表(教师编号,教师姓名,性别,出生日期,学历,职称,系部代码,备注)values (040000000006,张强,女,03-2月-1972,本科,讲师,04,);创建触发器“tri_stu_del”create or replace trigger trig_js_delbefore delete on 教师表for each rowbegindelete 教师任课表 where 教师编号

14、=:old.教师编号;end;delete 教师表 where 教师姓名=张强;创建触发器“tri_stu_upd”create or replace trigger trig_js_updbefore update on 教师表for each rowbeginupdate 教师任课表 set 教师编号=:old.教师编号;end;update 教师表set 教师姓名=刘海军where 教师编号=010000002;实训九:序列、同义词 、程序包1.创建程序包 将统计学生表中不同性别的人数的函数和过程写到包中(1)以system用户登录数据库(2)创建程序包头 stud_packagecreate or replace package stud_packageasfunction f_count(in_zhic in 教师表.职称%type) return number;procedure p_count(in_zhic in 教师表.职称%type,out_num out number);end stud_package;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号