Oracle数据库课程设计报告学生成绩管理系统

合集下载

实验十九Oracle数据库系统开发实例-学生成绩管理系统

实验十九Oracle数据库系统开发实例-学生成绩管理系统

实验十九Oracle数据库系统开发实例-学生成绩管理系统【一】实验目的1.掌握采用开发Oracle数据库系统的方法;2.掌握开发C/S模式的数据库系统的方法。

【二】实验内容利用SQL Developer,在scott用户下创建6张表:student、teacher、course、allocate、score和users表,如表19-1至19-7所示。

表19-1 users表结构表19-2 users表的数据表19-3 student表的结构表19-4 teacher表的结构表19-5 course表的结构表19-6 allocate表的结构表19-7 score表的结构一、系统功能1.实现学生基本数据的编辑和相关查询。

2.实现教师基本数据的编辑和相关查询。

3.实现课程基本数据的编辑和相关查询。

4.实现各课程任课教师安排和相关查询。

5.实现学生成绩数据的编辑和相关查询。

6.实现用户管理和控制功能。

二、系统结构本系统对应的项目为“学生成绩管理系统.sln”,共有20个窗体和1个公共模块。

本项目的启动窗体为pass,该窗体提示用户输入相应的用户名/密码,并判断是否为合法用户。

如果是非法用户(用户名/密码输入错误),则提示用户再次输入用户名/密码,若用户非法输入3次,便自动退出系统运行。

如果是合法用户,则调用main多文档窗体启动相应的菜单,用户通过该系统菜单执行相应的操作。

系统结构图,如图19-1所示。

main窗体学生数据管理menu13_Click过程系统维护setuser窗体setuser1窗体pass窗体editstudent窗体editstudent1窗体querystudent窗体教师数据管理editteacher窗体editteacher1窗体queryteacher窗体课程数据管理editcourse窗体editcourse1窗体querycourse窗体成绩数据管理editscore窗体queryscore窗体课程安排管理allocatecourse窗体allocatecourse1窗体queryallocate窗体menu62_Click过程2.pass窗体pass窗体用于接受用户的用户名/密码输入,判断是否为合法用户。

数据库学生成绩管理系统课程设计报告

数据库学生成绩管理系统课程设计报告

数据库课程设计报告1.功能需求本报告主要介绍学生成绩管理系统的数据库设计,从需求分析到数据库的运行与维护都进行详细的叙述。

该系统是利用SQL开发出来的。

通过SQL建立学生成绩管理系统,大大方便和简化了数据的查询和处理,管理员可以通过SQL语言对表内数据进行添加,删除,修改,查询等操作,还可以建立多用户,对其使用权限进行分配和回收。

报告分为4部分,第一部分是课题简介及设计的内容与目的,需求分析,此阶段是数据库设计的起点。

第二部分是概念设计,逻辑结构设计,它是将需求分析的用户需求抽象为信息结构,并将概念模型转换为某个DBMS所支持的数据模型。

第三部分是数据库的实施与运行,它包括数据的载入及数据困的运行和数据库和数据表的创建(代码)。

第四部分是课程设计的总结。

1.1开发环境及开发语言本次课程设计是以学生信息管理系统为模拟模型,运用C++编程语言结合SQL 数据库所开发系统。

开发平台为VC6.0和SQL2008。

1.2 设计目的随着学生数量的日益增多,学校对学生的管理要求也越来越高,为了使学生成绩的管理更加系统化,数字化,因此我们设计了该学生信息管理系统。

1.3 设计内容运用基于E-R模型的数据库设计方法和关系规范化理论做指导完成从系统的分析到设计直至系统的最终实现,开发学生成绩管理系统,完成学生成绩管理系统的全部功能。

首先做好需求分析,并完成数据流图,其次做概念分析,利用实体联系的方法将需求分析的用户需求抽象为信息结构,得到E-R图,然后就是逻辑结构设计,将E-R图转换为计算机系统所支持的逻辑模型。

最后利用SQL完成具体的实例。

1.4.需求分析1、问题的提出:为了高效率的完成学生成绩的管理,决定开发学生成绩管理系统。

2、需完成的功能:(1)能提供管理员及普通用户(除删除和修改)录入、注销、显示当前用户、修改、删除、查询、输出,学生的档案信息,这些信息包括学生的成绩、课程、个人信息等。

(2)触发器,索引,存储过程的建立及使用。

数据库学生成绩管理系统课程设计报告

数据库学生成绩管理系统课程设计报告

02
系统需求分析
功能需求
用户管理
系统需要提供用户注册、登录、权限 管理等基本功能,以确保不同用户能 够安全、有效地使用系统。
报表生成与打印
系统需要支持生成各类报表,如学生 成绩单、成绩统计表等,并提供打印 功能。
01
02
学生信息管理
系统需要支持对学生基本信息的录入 、修改、查询和删除等操作,包括学 生姓名、学号、班级等。
性能测试
在压力测试下,系统能够保持稳定的性能表现, 响应时间、吞吐量等指标均满足设计要求。
3
安全测试
系统具有一定的安全防护能力,如用户身份验证 、权限控制等,但仍需加强数据安全保护措施。
系统性能评估
响应时间
系统响应时间较快,用户操 作流畅,无明显延迟现象。
吞吐量
系统能够处理较大的数据量 ,满足多用户同时使用的需 求。
定性和可靠性。
数据表设计
根据系统需求,设计合理的数 据表结构,包括学生表、课程 表、成绩表等,并建立表之间 的关系。
数据完整性保障
通过设定主键、外键、约束等 机制,确保数据的完整性和一 致性。
数据安全性
采用密码加密、权限控制等手 段,保障数据库的安全性。
界面设计
用户界面
设计简洁、直观的用户界面,提供友 好的用户操作体验。
界面风格
采用统一的界面风格,保持整体美观 和一致性。
交互设计
通过合理的交互设计,引导用户完成 操作流程,减少错误操作的可能性。
响应式设计
界面支持响应式布局,适应不同设备 和屏幕尺寸的显示需求。
04
系统实现
开发环境搭建
开发工具
Visual Studio Code
运行环境

Oracle 综训学生成绩管理系统

Oracle 综训学生成绩管理系统

软件学院综合训练项目报告书课程名称Oracle数据库项目名称学生成绩管理系统专业班级组别成员任课教师刘腊梅2015 年 6 月目录1.设计时间 (3)2.设计任务 (3)3.设计内容 (3)3.1系统设计 (3)3.1.1系统功能概述 (3)3.1.2系统功能模块设计 (4)3.2数据库设计 (5)3.2.1数据库需求分析 (5)3.2.2数据库逻辑结构设计 (9)3.3数据库实现 (11)3.3.1创建用户 (11)3.3.2创建表和约束 (11)3.3.3创建存储过程、函数及触发器 (13)3.4测试与分析 (16)3.4.1测试 (16)3.4.2分析 (19)3.5代码 (19)4.总结与展望 (30)5.参考文献 (31)1 设计时间2015/6/1~2015/6/72 设计任务信息管理系统—学生成绩管理系统掌握ORACLE数据库的特点,熟悉SQL命令和PL/SQL的编程特点,运用所学知识解决现实问题,完成学生成绩管理系统的后台数据库设计,提高系统性能。

在该项目中,不考虑需求分析过程,要求建立以下关系:院系信息:院系编号、院系名称、院系主管、地址、院系人数;学生基本信息:院系编号、学号、姓名、性别、学生类型、入学日期、籍贯、身份证号、详细地址、出生日期、所学专业、民族、电话(家) 、缴费总计、已修学分、备注;课程信息:课程号、课程名称、开设年级、学时数、学分;成绩单:学号、课程号、学期、成绩、备注。

使用存储过程统计每个学生的‘已修学分’。

使用触发器实现当登记学生成绩(60分以上)时自动统计学生的‘已修学分’。

使用函数实现统计各课程的未及格人数,要求输入参数课程号后,返回各课程的人数NUM。

并实现调用,查‘数据库系统设计’的未及格人数。

将上实验中的存储过程与本实验中函数创建包。

3 设计内容3.1系统设计图3-1-2 业务流程图3.2数据库设计图3-2-6 0层数据流图图3-2-7 1层数据流图3.3.2创建表和约束1.创建院系信息表。

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

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

Oracle数据库课程设计——学生考勤系统的Oracle实现1学生考勤管理系统背景分析随着高校校园信息化的逐步完善,有效地借助网络、数据库等技术提高工作和管理效率。

如今针对师生的成绩查询系统、教务管理系统、招生就业系统、BBS、校园网站等系统在各大高校纷纷出现,对全校师生的学习、生活、管理、办公带来了便利。

因此学生考勤管理系统为进一步加强高校学风建设,维护正常的教学秩序,给学生创造一个优良的学习环境,从而应运而生。

目前高校学生上课考勤管理都是以任课老师上课点名,签到等等记录学生上课情况,对于时间比较长的请假,需要通过递交请假申请让班导师、院系领导都批准方能生效。

这种模式在目前高校管理中暴露了不可避免的弊端,这主要体现在如下几个方面:1、学生请假不方便;2、学生之间有冒名顶替签到的情况3、学生请假对任课老师不透明;4、学生对自己整个学期的上课出勤情况没有整体的统计信息;5、班导师对本班学生整个学期的上课出勤情况不易查看;6、院系领导、学校领导不容易把握学生上课的出勤情况。

因此一个好的学生考勤管理系统在一定程度上可以解决这些弊端,本系统主要针对目前高校学生在线请假以及学生上课出勤管理当中所暴露出来的问题而设计的信息系统。

本系统涉及到高校六大类用户:学生、任课老师、班导师、院系领导、学校领导、系统管理员。

2学生考勤管理系统需求分析2.1 用户需求描述用户是系统的最终使用者,根据分析,本系统应当包括学生、班导师、任课老师、院系领导、学校领导、系统管理员六类用户,这六类用户对系统的需求简要概括如下:2.2.1学生用户需求描述学生对本系统的主要需求是:在线请假以及查看在校期间所有的上课出勤信息。

在线请假需求:学生请假的全过程当中,学生可以随时查看请假的详细进展情况。

查看出勤信息需求:学生可以查看在校期间所有学期上课出勤的详细信息,如:查看“数据库课程设计”这门课程在整个学期请假、旷课多少次等信息。

其它需求:查看本人的基本信息,如本人的所属的院系、年级、专业、班级、学号、姓名、性别等,以及修改个人用户密码。

ORACLE学生成绩管理系统

ORACLE学生成绩管理系统

华东交通大学理工学院课程设计报告书所属课程名称ORACLE数据库题目学生成绩管理系统分院电信分院专业班级计算机科学与技术ﻩ学号学生姓名指导教师2013年1月4 日华东交通大学理工学院课程设计( 论文)任务书专业计算机科学与技术班级姓名一、课程设计(论文)题目学生成绩管理系统二、课程设计(论文)工作:自2012 年12 月31 日起至2013 年 1 月 4 日止。

三、课程设计(论文)的内容要求:1、学生成绩管理系统的设计1.在对数据库理论及知识理解的基础上,针对具体的实际问题,设计合适的数据库表。

2.给出系统的概要设计、详细设计,完成相关的算法描述。

3.设计必要的视图、触发器、存储过程4.完成规范化的课程设计说明书的编写本设计是我和戈振军2个合作完成,我主要负责各个模块的界面设计与源代码的编译,最后测试系统的运行。

戈振军(20090210440123)主要负责各种数据的收集整理,数据库的设计,E-R图的设计与系统框架的搭建。

学生签名:2013 年1 月4日课程设计(论文)评阅意见评阅人职称20 年月日ﻬ目录第一章系统概述ﻩ错误!未定义书签。

1.1系统背景ﻩ错误!未定义书签。

1.2 可行性研究............................................................. 错误!未定义书签。

第二章需求分析................................................................ 错误!未定义书签。

2.1 运行环境:ﻩ错误!未定义书签。

2.2数据需求ﻩ错误!未定义书签。

第三章软件设计................................................................ 错误!未定义书签。

3.1总体设计............................................................. 错误!未定义书签。

学生管理系统Oracle课程设计

学生管理系统Oracle课程设计

学生管理系统Oracle课程设计一、课程目标知识目标:1. 理解Oracle数据库的基本概念,掌握其体系结构。

2. 学会使用SQL语言进行数据查询、插入、更新和删除操作。

3. 掌握学生管理系统数据库的设计原则和方法。

技能目标:1. 能够独立安装和配置Oracle数据库环境。

2. 能够使用SQL Developer等工具进行数据库操作。

3. 能够设计并实现一个简单的学生管理系统数据库。

情感态度价值观目标:1. 培养学生对待数据库技术的积极态度,提高学习兴趣。

2. 培养学生的团队协作精神,学会共同解决问题。

3. 引导学生认识到数据库在现实生活中的重要性,激发其应用创新意识。

课程性质分析:本课程为信息技术课程,以实践操作为主,理论讲解为辅。

课程内容紧密结合学生管理系统项目,以提高学生的实际操作能力为目标。

学生特点分析:高二年级学生对数据库知识有一定了解,具备基本的计算机操作技能,但Oracle数据库知识尚属初学阶段。

学生具有较强的学习兴趣和动手能力,但需注重培养团队协作能力。

教学要求:1. 结合实际项目,注重理论与实践相结合,提高学生的实践能力。

2. 采用任务驱动法,引导学生自主探究,培养学生的自主学习能力。

3. 注重个体差异,因材施教,使每位学生都能在课程中学有所得。

二、教学内容1. Oracle数据库基础知识:- 数据库基本概念- Oracle数据库体系结构- SQL语言基础2. Oracle数据库操作:- 数据查询- 数据插入、更新和删除- 索引和视图的创建与应用3. 学生管理系统数据库设计:- 数据库设计原则- 实体关系模型- 数据库表结构设计4. Oracle数据库环境配置与使用:- Oracle数据库安装- SQL Developer工具的使用- 数据库连接与操作5. 实践项目:学生管理系统数据库实现- 数据库表创建与数据导入- 查询与统计功能实现- 简单的数据维护功能实现教学内容安排与进度:第一周:Oracle数据库基础知识学习第二周:Oracle数据库操作学习第三周:学生管理系统数据库设计第四周:Oracle数据库环境配置与使用第五周:实践项目:学生管理系统数据库实现教材章节关联:《Oracle数据库管理与维护》第一章:数据库基本概念与体系结构《Oracle数据库管理与维护》第二章:SQL语言基础《Oracle数据库管理与维护》第三章:数据库设计《Oracle数据库管理与维护》第四章:数据库操作与维护《Oracle数据库管理与维护》附录:实践项目指导三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用以下多样化的教学方法:1. 讲授法:通过系统的讲解,使学生掌握Oracle数据库的基本概念、体系结构和SQL语言基础。

(2023)数据库课程设计报告学生成绩管理系统(一)

(2023)数据库课程设计报告学生成绩管理系统(一)

(2023)数据库课程设计报告学生成绩管理系统(一)数据库课程设计报告学生成绩管理系统项目介绍•项目名称:学生成绩管理系统•项目目的:为学校提供统一的学生成绩管理工具,实现对学生成绩、班级、评价等信息的管理和查询,以提高教学质量和效率。

•项目背景:目前,学校的学生成绩管理仍然以手工填写、存档、查询为主,效率低下,易出错,且无法及时反馈班级、教师及学生的情况,因此需要一个更加智能化、高效化的学生成绩管理系统。

项目需求•数据库表设计:学生成绩表、班级表、课程表、教师表、考试表、成绩输入表、评价表等。

•系统模块划分:学生信息管理、成绩管理、班级管理、评价管理、系统设置等。

•系统功能实现:学生基本信息、成绩录入、成绩查询、班级成绩汇总、学生评价、班级课表管理等。

•开发语言:Java•数据库:MySQL•前端框架:Bootstrap项目实现•系统架构设计:采用B/S结构,前端页面使用Bootstrap框架,后端使用Java开发,数据库采用MySQL。

•数据库设计:学生成绩表、班级表、课程表、教师表、考试表、成绩输入表、评价表等。

•系统模块划分:学生信息管理、成绩管理、班级管理、评价管理、系统设置等。

•系统功能实现:学生基本信息、成绩录入、成绩查询、班级成绩汇总、学生评价、班级课表管理等。

项目成果•学生成绩管理系统上线使用,为学校提供了快速、准确的学生管理服务,为提高教学质量和效率做出了贡献。

•项目开发过程中,团队成员掌握了Java、MySQL、Bootstrap等相关技术,并对团队协作、项目管理等方面也有了更深入的了解。

•进一步完善系统功能,提高系统的易用性和可靠性。

•探索应用新技术,如人工智能、大数据等,为学生成绩管理提供更大的帮助。

•推广应用学生成绩管理系统,让更多的学校受益。

项目总结该学生成绩管理系统的开发,是一个锻炼团队协作、技术应用、项目管理等多个方面能力的过程,从需求调研、技术选型、系统设计、代码编写到测试、上线、维护和优化,团队成员积极配合、充分合作,不断攻关,最终实现了可靠的成果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Oracle数据库课程设计题目学生成绩管理系统 _______班级10级软工数据库一班姓名________ 谢铮________________ 学号_______ 105151640043扌旨导老0帀 ____ 刘杨涛 ________2013年1月5日目录一、前言 (2)二、需求分析 (3)三、系统设计 (5)四、数据库设计 (7)五、编程步骤 (19)六、测试 (25)七、课程设计总结 (33)八、参考资料 (34)九、附录 (34)学生成绩管理是一个学校必不可少的部分,随着计算机和计算机知识的普及,学生成绩管理系统得到了更大的发展空间,通过对学生成绩管理系统的开发,可以提高校务人员的工作效率。

本次课程设计以java web 技术设计学生成绩管理系统为前台,使用oracle 数据库作为后台数据存储。

学生成绩管理是一个学校不可缺少的部分,一个良好的学生成绩管理系统应该能够为用户提供充足的信息和快捷的查询手段。

学生成绩管理系统对学校加强学生成绩管理有着极其重要的作用.由于各个大学都在持续扩招,学生的数量日益庞大,对于如何管理如此庞大的学生成绩数据显得更为复杂,传统的手工成绩管理不仅工作量大,而且容易出现问题,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。

已不能适应时代的发展。

随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。

作为计算机应用的一部分,使用计算机对学生成绩信息进行管理,具有手工管理所无法比拟的优点。

例:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。

这些优点能够极大地提高管理者管理的效率,也是学校走向科学化、正规化管理,与世界接轨的重要条件。

因此,开发设计这样一套学生成绩管理软件成为很有必要的事情.二、需求分析1.功能需求1.学生基本信息及所选科目成绩的录入或导入。

2.基本信息的查询(分系、班级;分科目)与修改。

3.对每系或每班各科成绩进行分析(即求单科平均成绩、及格率和优秀率);4.对所开课程的成绩分析(求其平均成绩,最高分和最低分);5.对学生考试成绩进行排名(单科按系别或班级进行排名,对每一个班级,同一学期学生总体成绩进行排名,并显示各科成绩信息)6.不及格情况的统计、导出、打印2.系统需求该学生成绩管理系统采用java语言开发研制,JavaBean作为行为模型,servlet作为响应服务器,DIV+CSS+javascript设计网页,oracle作为数据存储。

在完成用户需求同时,完成条件查询等功能。

针对学生成绩及其数据特点,可以全面实现对学生成绩的插入、查询、修改、删除和输出等功能的计算机管理。

它能使学生成绩数据的工作人员从繁重的工作中解脱出来,大大减轻了工作量,减少人为的工作失误,全面提高学生成绩管理的效率,从而使学校对于学生成绩的管理水平和技术水平跃上一个新的台阶。

3.系统开发环境1.开发语言:java+jsp2.开发工具:IE 8.0,Tomcat ,jdk 1.7,dreamweaver3.数据库:Oracle 10g4.文档编写工具:word5.服务器端运行环境:oracle 10g,Tomcat ,jdk 1.76.客户端运行环境:浏览器三、系统设计1.功能模块2.系统流程图3.数据字典(i)数据存储数据表:用户表表组成:用户名,密码数据项:用户名数据类型:varchar 数据长度:50否否数据项:密码数据类型:varchar数据长度:50(2)数据流定义:登陆名称:登陆简述:用户登陆系统数据来源:用户数据去向:用户表数据组成:用户名+密码四、数据库设计1■数据库结构设计2.实体联系图3. 数据库源代码select userenv('language') from dual; shutdown immediate startup mountALTER SYSTEM ENABLE RESTRICTED SESSION; ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; ALTER SYSTEM SET AQ_TM_PROCESSES=0; ALTER DATABASE OPEN;alter databasecharacter set INTERNAL_USE UTF8; shutdown immediate startup create user xz105151640043 identified by xz管理管理管理管理用户名密码科目名学号成绩性别姓名 学号 出生日期所在班级班级名年级系别任课老师科目名联系电话科目信息班级信息成绩信息学生信息教师用户/grant dba to xz/conn xz105151640043/xz/set serveroutput on/create table user_(name varchar(50) primary key,passwd varchar(50) not null) /insert into user_ values('xz','xz');/Commit/create table cs(cs_class varchar(50) primary key,cs_dept varchar(50) not null,cs_grade varchar(50) not null)/create table student(stu_no varchar(15) primary key,stu_name varchar(10) not null,stu_sexvarchar(4) not null check (stu_sex='男'or stu_sex='女'), stu_birthday varchar(50) , stu_phone varchar(50), stu_cs_classvarchar(50) ,constraint class_fk foreign key(stu_cs_class) references cs(cs_class)on delete cascade)/create table sub(sub_subject varchar(50) primary key, sub_teacher_namevarchar(10))/create table gd(gd_stu_no varchar(15),gd_sub_subject varchar(50),gd_grade number(3) not null,primary key(gd_stu_no,gd_sub_subject),constraint fk_gd_stu_no foreign key(gd_stu_no) references student(stu_no), constraintfk_gd_sub_subject foreign key(gd_sub_subject) references sub(sub_subject) )/create or replace procedure p_insert_stu( p_stu_no in student.stu_no%type, p_stu_name in student.stu_name%type, p_stu_sex in student.stu_sex%type, p_stu_birthday instudent.stu_birthday%type, p_stu_phone in student.stu_phone%type, p_stu_cs_class instudent.stu_cs_class%type, s_state_valuesout number) as begininsert into student (stu_no,stu_name,stu_sex,stu_birthday,stu_phone,stu_cs_class) values (p_stu_no,p_stu_name,p_stu_sex,p_stu_birthday,p_stu_phone,p_stu_cs_class); if sql%rowcount=1 then s_state_values:=0;end if; exceptionwhen others then s_state_values:=1;commit; end ;/create or replace procedure c_insert_stu( c_stu_no in student.stu_no%type, c_state_valuesout number) as beginselect count(*) into c_state_values from studentwhere stu_no=c_stu_no;end ; / create or replace procedure c_insert_stu_fk( c_cs_classin cs.cs_class%type,c_state_values_fk out number) as beginselect count(*) into c_state_values_fk from cswhere cs_class=c_cs_class;end ; /create or replace procedure p_insert_cs( p_cs_dept in cs.cs_dept%type, p_cs_grade incs.cs_grade%type, p_cs_class in cs.cs_class%type, s_state_valuesout number) as begin insertinto cs(cs_dept,cs_grade,cs_class) values(p_cs_dept, p_cs_grade, p_cs_class); if sql%rowcount=1 then s_state_values:=0;end if; exceptionwhen others then s_state_values:=1; commit; end ;/create or replace procedure c_insert_cs( c_cs_classin cs.cs_class%type, c_state_valuesout number) as beginselect count(*) into c_state_values from cs where cs_class=c_cs_class;end ; / create or replace procedure p_insert_sub( p_sub_subject in sub.sub_subject%type,p_sub_teacher_namein sub.sub_teacher_name%type, s_state_valuesout number) as begininsert into sub(sub_subject,sub_teacher_name) values(p_sub_subject, p_sub_teacher_name); if sql%rowcount=1 then s_state_values:=0;end if; exceptionwhen others then s_state_values:=1; commit;end;/ create or replace procedure c_insert_sub( c_sub_subject in sub.sub_subject%type,c_state_valuesout number) as beginselect count(*) into c_state_values from subwhere sub_subject=c_sub_subject;end ;/create or replace procedure p_insert_gd( p_gd_stu_no in gd.gd_stu_no%type, p_gd_sub_subject in gd.gd_sub_subject%type, p_gd_grade in gd.gd_grade%type, s_state_valuesout number) as begin insert into gd(gd_stu_no,gd_sub_subject,gd_grade)values(p_gd_stu_no,p_gd_sub_subject,p_gd_grade); if sql%rowcount=1then s_state_values:=0;end if;exceptionwhen others then s_state_values:=1;if p_gd_grade=nullthen s_state_values:=2;end if;commit;end ;/create or replace procedure c_insert_gd( p_gd_stu_no in gd.gd_stu_no%type, p_gd_sub_subject in gd.gd_sub_subject%type, c_state_valuesout number) as beginselect count(*) into c_state_values from (select gd_stu_no from gdwhere gd_sub_subject=p_gd_sub_subject where gd_stu_no=p_gd_stu_no;end ; / create or replace procedure c_insert_gd_fk1( c_stu_no in student.stu_no%type,c_state_values_fk1 out number) as begin select count(*) into c_state_values_fk1 from student where stu_no=c_stu_no;end ; / create or replace procedure c_insert_gd_fk2( c_sub_subject in sub.sub_subject%type,c_state_values_fk2 out number) as beginselect count(*) into c_state_values_fk2 from subwhere sub_subject=c_sub_subject;end ; / create or replace procedure p_select_stu_no_info( p_stu_no in out student.stu_no%type, p_stu_name out student.stu_name%type, p_stu_sex out student.stu_sex%type, p_stu_birthday out student.stu_birthday%type, p_stu_phone out student.stu_phone%type, p_stu_cs_class out student.stu_cs_class%type, p_cs_dept out cs.cs_dept%type, p_cs_grade out cs.cs_grade%type,c_state_valuesout number) as begin c_state_values:=0;select stu_no, stu_name,stu_sex,stu_birthday ,stu_phone ,stu_cs_class,cs_dept ,cs_gradeinto p_stu_no, p_stu_name, p_stu_sex, p_stu_birthday, p_stu_phone, p_stu_cs_class, p_cs_dept, p_cs_grade from student, cs where stu_cs_class=cs_classand stu_no=p_stu_no;exceptionwhen NO_DATA_FOUND then c_state_values:=1;when others then c_state_values:=2; end ;/create or replace procedure p_select_stu_no_gd(p_stu_no in student.stu_no%type , cursor_gd out sys_refcursor) as beginopen cursor_gd forselect gd_sub_subject,gd_gradefrom gdwhere gd_stu_no=p_stu_no;end;/create or replace procedure p_select_stu_name(p_stu_name in student.stu_name%type ,cursor_stu out sys_refcursor,c_state_valuesout number) as beginc_state_values:=0;open cursor_stu forselect stu_no, stu_name,stu_sex,stu_birthday ,stu_phone ,stu_cs_class,cs_dept ,cs_grade from student, cswhere stu_name=p_stu_nameand stu_cs_class=cs_class;exceptionwhen others then c_state_values:=2;end;/create or replace procedure p_pm_sum( cursor_gd_sum out sys_refcursor)asbeginopen cursor_gd_sum forselect distinct sno,stu_name,sumfrom student,(select gd_stu_no as sno,sum(gd_grade) assumfrom gdgroup by gd_stu_no)where stu_no=snoorder by sum desc;end;/create or replace procedure p_pm_sub(p_gd_sub_subject in gd.gd_sub_subject%type, cursor_gd_sub out sys_refcursoras begin open cursor_gd_sub for select gd_stu_no,stu_na from gd,student wheregd_sub_subject=p_gd_sub_subject and stu_no=gd_stu_no order by gd_grade desc;end;create or replace procedure p_pm_class( p_stu_cs_class in student.stu_cs_class%type,cursor_gd_class out sys_refcursor)asbeginopen cursor_gd_class forselect distinct sno,stu_name,sumfrom student,(select gd_stu_no as sno,sum(gd_grade) assum from gdgroup by gd_stu_no)where stu_no=sno and stu_cs_class=p_stu_cs_classorder by sum desc;end;/create or replace procedure p_fx( cursor_fx out sys_refcursor)asbeginopen cursor_fx forselect gd_sub_subject,max(gd_grade) as zuigao,min(gd_grade) as zuidi,avg(gd_grade)as pingjun,SUM(CASE WHEN gd_grade>=60 THEN 1 ELSE 0 END)/COUNT(*)*100 AS jigelv, SUM(CASE WHENgd_grade>=80 THEN 1 ELSE 0 END)/COUNT(*)*100 AS youxiulv from gdgroup by gd_sub_subject; end;/ create or replace procedure p_bujige( cursor_bujige out sys_refcursor )as begin open cursor_bujige forselect gd_stu_no,gd_sub_subject,gd_grade from gdwhere gd_grade<60;end; / create or replace procedure p_update_stu( p_stu_no in student.stu_no%type, p_stu_name in student.stu_name%type, p_stu_sex in student.stu_sex%type, p_stu_birthday instudent.stu_birthday%type, p_stu_phone in student.stu_phone%type, p_stu_cs_class instudent.stu_cs_class%type, s_state_valuesout number) as begin update student setstu_name=p_stu_name,stu_sex=p_stu_sex,stu_birthday=p_stu_birthday,stu_phone=p_stu_phone,stu_cs_class=p_stu_cs_classwhere stu_no=p_stu_no; if sql%rowcount=1 then s_state_values:=0; end if;exceptionwhen others then s_state_values:=1;commit; end ;/create or replace procedure p_delete_stu( p_stu_no in student.stu_no%type, s_state_valuesout number) as begindelete from gd where gd_stu_no=p_stu_no; delete from student where stu_no=p_stu_no;s_state_values:=0;exceptionwhen others then s_state_values:=1;rollback;commit;end;/ create or replace procedure p_update_gd( p_gd_stu_no in gd.gd_stu_no%type,p_gd_sub_subject in gd.gd_sub_subject%type,p_gd_grade in gd.gd_grade%type, s_state_valuesout number) asbeginupdate gdset gd_stu_no=p_gd_stu_no,gd_sub_subject=p_gd_sub_subject,gd_grade=p_gd_grade wheregd_stu_no=p_gd_stu_no and gd_sub_subject=p_gd_sub_subject;if sql%rowcount=1then s_state_values:=0;end if;exceptionwhen others then s_state_values:=1;rollback;commit;end ;/create or replace procedure p_delete_gd( p_gd_stu_no in gd.gd_stu_no%type, p_gd_sub_subject in gd.gd_sub_subject%type, s_state_valuesout number)asbegindelete from gdwhere gd_stu_no=p_gd_stu_no and gd_sub_subject=p_gd_sub_subject; if sql%rowcount=1then s_state_values:=0;end if;exceptionwhen others then s_state_values:=1;rollback;commit;end ;/create or replace procedure p_denglu( p_name in user_.name%type, p_passwd in user_.passwd%type, s_state_valuesout number)asbeginselect count(*) into s_state_valuesfrom user_where name=p_name and passwd=p_passwd;end;/create or replace procedure p_update_passwd( p_name in user_.name%type, p_passwd inuser_.passwd%type, s_state_valuesout number) as begin update user_ set passwd= p_passwd where name=p_name;if sql%rowcount=1then s_state_values:=0;end if; exceptionwhen others then s_state_values:=1;rollback;commit;end;/create or replace procedure p_select_no( cursor_stu_no out sys_refcursor) as begin open cursor_stu_no for select stu_no from student order by stu_no;end;/create or replace procedure p_select_all( cursor_all out sys_refcursor)asbegin open cursor_all for select stu_no,stu_name,stu_sex,stu_birthday ,stu_phone ,stu_cs_class,cs_dept ,cs_grade from student, cs where stu_cs_class=cs_classorder by stu_no;end;/create or replace procedure p_select_count( myrowcount out number)as beginselect count(*) into myrowcount from student;end;/五、编程步骤1.连接数据库的javabean由于在本系统的多个JSP页面中都需要访问数据库,因此使用一个JavaBean 来专门完成数据库的连接。

相关文档
最新文档