《数据库原理与应用》综合性实验报告-学生成绩管理系统数据库设计方案

合集下载

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

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

数据库原理与应用课程设计报告课程名称数据库原理与应用实验名称学生成绩管理系统学生学院自动化学院 _____ 专业班级______ xxxx________学号_xxxx学生姓名_xxxx____ _ 指导教师______ 黄永慧 __ _____2012 年 5 月 20日一、课程设计的内容:当前,应用数据库技术编写信息管理软件,已是很成熟的技术,关键是如何实现设计要求,如何设计出友好的人机界面,使程序运行稳定、使用方便、操作简便,建立学生成绩管理系统,采用计算机对学生成绩进行管理,进一步提高办学效益和现代化水平。

学生成绩管理系统的设计与实现主要包括如下内容:1)原始数据录入(包括学生信息、课程信息和学生成绩的录入);2)课程查询、学生信息和成绩查询查询;3)报表输出(包括学生成绩汇总报表、需重修的学生统计表、班级单科成绩表等);4)数据维护(包括数据备份、数据恢复等),该部分内容选做。

5)随着网络技术的发展,可考虑提供网络在线查询功能。

二、课程设计的要求与数据对于课程设计要求按照如下步骤进行:1)选题与搜集资料:根据分组,选择设计题目,在小组内进行分工,进行应用系统调查,搜集相关资料。

2)分析与设计:根据搜集的资料,进行功能与数据分析,并进行数据库、系统功能等设计。

撰写数据字典、使用E-R图为该数据库设计概念模型、将E-R数据模型转换成关系模型、对于设计好关系模式集,利用SQL语句定义各个关系模式,定义各关系模式之间的联系,以及参照完整性的约束。

3)程序设计:运用掌握的高级语言(如VB、VC、ASP、JSP等),结合选择的数据库管理系统(要求选择SQL SERVER 2000,或SQL SERVER 2005),编写程序,实现所设计的模块功能。

4)调试与测试:装入初始数据,自行调试程序,成员交叉测试程序,并记录测试情况。

装入一定量的测试数据,调试系统,并完成各项操作要求。

三、课程设计应完成的工作:学生成绩管理系统至少需要完成以下功能:1、基本信息的管理系统,基本功能如下:(1)能够完成新、老生信息的输入、修改、删除等工作,学生的基本信息,包括学号、姓名、性别、籍贯等,具体可根据需求自行设计;(2)能够完成课程信息的输入、修改、删除等工作,课程的基本信息,包括课程编号、课程名称、学时、学分、先修课等,具体可根据需求自行设计;(3)可以按照特定的信息进行查找,并按照特定的要求进行排序;2、学生成绩的管理,基本功能如下:(1)学生成绩的输入、修改、删除等基本操作;(2)成绩的查询功能,可以按学号、姓名等进行成绩查询;(3)成绩的综合统计功能,包括学生成绩按照不同条件进行排名,管理人员可以选择不同的排序条件。

《数据库原理》- 学生成绩管理系统

《数据库原理》- 学生成绩管理系统

《数据库原理》课程设计报告设计题目:学生成绩管理系统专业:信息管理与信息系统计算机与数据科学学院2019 年1月6日《数据库原理》课程设计报告目录目录1 概述 (1)1.1选题的背景与意义 (1)1.2相关技术分析 (1)2 系统功能设计 (2)2.1系统总体结构设计图 (2)2.2系统功能模块 (2)3 数据库设计 (4)3.1需求分析 (4)3.1.1功能需求 (4)3.1.2数据需求 (4)3.1.3学生成绩管理系统流程图 (5)3.2概念结构设计 (8)3.2.1局部E-R图 (8)3.2.2全局E-R图 (10)3.3逻辑结构设计 (12)3.3.1 E-R图转换为关系模式 (12)3.3.2子模式设计 (13)3.4物理结构设计 (14)3.5数据库实施 (14)3.6数据库运行与维护 (18)3.6.1系统测试 (18)3.6.2数据库的备份 (19)3.6.3数据库还原 (20)4 结束语 (21)参考文献 (22)1 概述1.1 选题的背景与意义针对学生的成绩管理工作量大、繁杂,人工处理非常困难。

学生成绩管理系统借助于计算机强大的处理能力,大大减轻了管理人员的工作量,并提高了处理的准确性。

学生成绩管理系统的开发运用,实现了学生成绩管理的自动化,不仅把广大教师从繁重的成绩管理工作中解脱出来、把学校从传统的成绩管理模式中解放出来,而且对学生成绩的判断和整理更合理、更公正,同时也给教师提供了一个准确、清晰、轻松的成绩管理环境。

1.2相关技术分析这个系统数据库采用Microsoft SQL Server 2012版数据库,该数据库系统在安全性、准确性和运行速度方面有绝对的优势,并且处理数据量大,效率高。

2 系统功能设计2.1系统总体结构设计图图2.1 结构设计图2.2 系统功能模块(1)系统管理模块:主要用于控制系统的系统开关,规定固定的时间用于开启系统,学生开始选课。

(2)学生信息管理模块:用于对学生基本信息的录入、查询、修改、维护、删除等常用功能。

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

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

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

数据库实验报告--学生成绩管理系统

数据库实验报告--学生成绩管理系统

数据库实验报告--学生成绩管理系统————————————————————————————————作者:————————————————————————————————日期:集中上机实验报告学生成绩管理数据库姓名:xxx学号:xxxxxxx班级:xxxxxx专业:xxxx二0一二年五月目录一、题目 (5)二、需求分析 (5)1.任务概述 (5)2.功能需求 (5)三、设计工具 (3)四、详细设计 (6)五、心得体会 (20)一、题目学生成绩管理数据库二、需求分析1。

任务概述基于ACCESS,结合C和SQL语言,实现对学生基本信息以及成绩的管理,包括对学生信息的添加,删除,查询等。

管理员用自己的用户名和密码登录“学生成绩管理数据库”应用系统后,对学生相关的信息进行查看与管理。

2。

功能需求系统主菜单包括:信息维护,信息浏览,报表,搜索查询,系统。

信息维护可以查看学生信息,课程信息,学生成绩;信息浏览可以查看学生信息,课程信息,成绩查询;报表可以打印输出学生信息,课程信息,学生成绩;搜索查询可以输入某一个学生的学号或姓名查看学生信息,学生成绩;系统里包含关于和退出两项功能.系统总体功能结构图如下:三、设计工具ACCESS 学生信信报搜系学生课程学生学生课程成绩学生课程学生学生学生关于退出教师教师四、详细设计1。

设计数据库概念模型数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效果以及实现的效果的影响。

合理的数据库结构设计可以提高数据库存储的效率,保证数据的完整和一致。

同时,合理的数据库结构设计也将有利于应用系统程序的实现。

在充分需求分析的基础上,经过逐步抽象,概括,分析,充分研讨,可画出反映系统数据的整体E-R 图.数据库概念模型如图1—1所示:nn图1—1 E —R 模型学选课政治学学姓性出生课程课程学学专nn 教师教师姓性文学职电邮成教2。

设计数据库关系模型根据前面设计的概念模型,按照E-R概念模型想关系模型转换的规则,课有如下的关系模式(其中带下划线的为主键,斜体字为外键):课程(课程编号,课程名称,学分,学时)学生(学号,姓名,性别,出生日期,专业,学院)成绩(学号,课程编号,成绩)教师(教师编号,姓名,性别,学院,文化程度,职称,电话,邮箱)3.设计数据库表结构根据设计的关系模型结果,设计关系数据库的数据表的逻辑结构,如表1-2所示.表1-2 表结构表字段名称数据类型主键/索引查阅列其他属性学生学号文本主键姓名文本出生日期日期/时期性别文本有效性规则为:”男”or”女”专业文本学院文本课程课程编号文本主键课程名称文本学分数字学时数字成绩学号文本主键组合框行来源于"学生”表课程编号文本组合框行来源于”课程”表成绩数字信息表用户名文本主键密码文本教师教师编号文本主键教师姓名文本性别文本学院文本文化程度文本职称文本电话文本邮箱文本任课教师编号文本主键表课程编号文本4.在数据库中建立表,并输入数据内容根据表1—2的设计要求,在数据库表设计视图中设计表的结构,在数据表视图正输入数据。

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

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

(2023)学生成绩管理系统数据库设计实验报告(一)学生成绩管理系统数据库设计实验报告实验背景随着信息技术的快速发展,学生成绩管理系统变得越来越重要。

一个好的学生成绩管理系统可以方便学生和教师查询成绩,促进教学和学习效果的提高。

实验目的本实验的目的是设计一个学生成绩管理系统的数据库,以方便学生和教师查询成绩。

数据库设计实体关系图我们先画出实体关系图,来帮助我们更好地理解数据库的关系。

学生 -- 选课 -- 课程|- 成绩|- 学期数据库表设计学生表字段名称类型约束条件说明id int primary key, auto_increment 学生ID name varchar(20) not null 学生姓名gender varchar(10) not null 学生性别age int not null 学生年龄字段名称类型约束条件说明grade int not null 学生年级major varchar(50) not null 学生专业phone varchar(20) not null 学生电话选课表字段名称类型约束条件说明id int primary key, auto_increment 选课ID student_id int not null 学生ID course_id int not null 课程ID semester varchar(20) not null 学期课程表字段名称类型约束条件说明id int primary key, auto_increment 课程ID name varchar(50) not null 课程名称credit int not null 学分成绩表字段名称类型约束条件说明id int primary key, auto_increment 成绩ID student_id int not null 学生ID course_id int not null 课程ID score int not null 成绩semester varchar(20) not null 学期实验结论通过本实验的设计,我们成功构建了一个学生成绩管理系统的数据库,包含学生、选课、课程和成绩四张表,满足了学生和教师查询成绩的需求。

数据库原理与应用课程设计(学生成绩管理系统)

数据库原理与应用课程设计(学生成绩管理系统)

数据库原理与应用课程设计(学生成绩管理系统)数据库原理与应用课程设计说明书题目:学生成绩管理系统学院:数学与系统科学学院班级:完成人:组号:姓名:学号:成绩:姓名:学号:成绩:指导教师:山东科技大学2014年6月24日课程设计任务书一、课程设计题目:学生成绩管理系统二、课程设计应解决的主要问题:1.学生功能:(1)可以查询学生所修课程的成绩,可以按照选修课与必修课查询课程成绩,可以按照学期查询成绩以及显示至今未通过成绩;______________(2)可以显示学生的已选学分,已获学分,必修学分,选修学分,平均绩点,总绩点;(3)可以使用游标显示学生的基本信息(学号,姓名,专业,班级名称,班级人数);2.教师功能:(4)可以使用游标显示各科成绩的平均分数;(5)可以使用自定义函数显示指定课程的最高分数;(6)可以查询选修所教课程的班;___________(7)可以查询课程的成绩情况;___________ 3.管理员功能:(7)可以显示所有的权限以及密码;(8)可按学号或姓名显示学生或教师的所有信息;三、任务发出日期:2014-4-25课程设计完成日期:2014-6-27小组分工说明小组编号题目:学生成绩管理系统小组分工情况:xxx:游标的使用,索引创建,缺省与规则创建,视图创建,触发器建立,应用程序的设计(用VB连接数据库与应用界面),实验报告的审定。

xxx:E-R图设计,基本表创建,数据查询,数据插入、删除、修改,自定义函数创建,存储过程创建,应用程序的设计(SQL语言部分),实验报告撰写。

组长签字:2014年06月24日指导教师对课程设计的评价成绩:指导教师签字:年月日目录1需求分析 (1)1.1用户的体系结构 (1)1.2数据表中的部分数据 (1)1.3数据库关系图 (3)1.4主要用户视图 (3)2概念结构设计 (4)2.1局部E-R图 (4)2.2全局E-R图 (5)3逻辑结构 (6)3.1关系模式设计 (6)3.2数据类型定义 (6)4物理结构设计 (7)4.1索引的创建 (7)5主要功能详细设计 (7)5.1数据操纵语句 (7)5.5基本查询语句 (7)5.3自定义函数 (9)5.4游标的使用 (9)5.5创建索引 (14)5.6创建视图 (14)5.7创建触发器 (18)5.8存储过程的建立 (20)6应用程序的设计 (21)6.1ADOBC控件连接说明 (27)6.2模块的建立 (20)6.3主要窗体以及代码 (28)6.4测试界面 (48)1需求分析1.1用户的体系结构:学生成绩查询系统应该具有三种不同的用户:学生、老师、系统管理员;其中学生用户为该系统的核心部分;教师可以完成对成绩的修改以及管理;系统管理员具有绝对的全部权限。

数据库应用课程设计实验报告---学生成绩管理系统

数据库应用课程设计实验报告---学生成绩管理系统

社会实践报告设计题目:_____小雨点学生成绩管理系统设计时间: 2012.7.10 至2012.7.21指导教师:评语:________________________________ _________________________________________ _________________________________________ _________________________________________ _________________________________________ 评阅成绩:____评阅教师:_____目录设计总说明 (3)关键词 (4)绪论 (5)第1章数据库设计 (6)1.1 需求分析 (6)1.1.1 数据需求 (6)1.1.2 数据字典 (6)1.1.3 数据流程图 (7)1.2 概念分析 (7)1.3 逻辑结构设计 (9)1.4 物理实施 (9)1.4.1 创建数据库 (9)1.4.2 创建数据表 (10)1.4.3 像数据表中插入数据 (10)1.4.4 创建视图 (12)1.4.5 触发器和完整性约束 (12)1.4.6 存储过程 (13)第2章系统界面设置及主要功能 (14)2.1 添加主菜单和功能按钮 (14)2.2 登录界面设置 (15)2.3 学生信息增、删、改界面 (17)2.4 对学生信息多角度查询 (21)总结 (27)参考文献 (28)附录程序代码 (29)1 StuConStr.h头文件的代码 (29)2 登录界面“确定”按钮代码 (29)3 添加登录界面背景图片的代码 (29)4 使控件变为透明的代码 (30)5 主界面“添加”按钮代码 (30)6 主界面“查找”按钮代码 (31)7 主界面“修改”按钮代码 (33)8 主界面“删除”按钮代码 (35)9 添加菜单栏和工具栏代码 (35)10 信息查询界面“查询”按钮代码 (36)11 成绩录入界面“查询”代码 (36)12 成绩录入界面“添加”代码 (37)13 成绩录入界面“修改” (37)14 成绩录入界面“删除”按钮代码 (38)小雨点学生成绩管理系统设计总说明:在当今社会,无论中小学还是大学,成绩管理是一项必要而且很关键的工作。

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

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

《数据库原理与应用》课程设计项目名称:学生成绩管理系统目录第一章实训目的、要求及步骤实训目的实训要求实训步骤第二章数据库设计需求分析数据库概念分析数据库逻辑设计第三章系统操作说明及运行结果数据定义数据查询操作数据更新操作第四章程序设计创建数据库输入数据第五章总结及人员分工第一章实训目的、要求及步骤一、实训目的1.通过课程设计,使学生进一步巩固所学的知识,考查学生对数据库理论及知识的理解能力和综合运用能力2.培养学生自主学习、独立思考的能力,学会查找资料并善于分析资料的能力3. 通过对学校日常教学管理中的课程、选课、学生、教师、成绩等相关内容进行分析,完成具有学生管理、成绩管理、课程管理等相关功能的小型数据库管理应用系统二、实训要求1、完成进学生、班级、课程表的维护2、完成成绩表的浏览查找3、完成成绩表的维护4、按班级、按课程计算平均成绩、最高成绩、最低成绩、及格率5、统计某学生、某学期的所有课程的平均成绩。

6、完成用户管理功能7、完成数据备份与恢复功能所需的知识点:E-R关系图;数据库表设计,数据库表维护等。

三、实训步骤遵循“自顶向下、逐步细化”的设计方法,认真分析并理解课程设计题目的要求,进行相应功能分析、算法分析,数据流程分析,E-R关系图分析,进行概要设计;1、需求分析界定系统范围,描述系统需求(包括数据需求和功能需求)2、概念结构设计画出系统各部分(子系统)E-R模型图3、逻辑结构设计(1)完成E-R模型向关系模型的转换(2)对关系模型进行优化(如果需要)4、物理结构设计(针对SQL Sever 2000)(1)存储结构设计(如数据表的构成,字段名称,字段数据类型,字段长度),选择合适的数据库表结构(2)完整性约束设计(如主键约束、非空约束、默认值约束、检查约束、唯一约束)5、将所设计表的结构在SQL Sever上实现,要求单独建立数据库并生成备份文件(备份数据库或导出数据库表到文本文件)。

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

《数据库原理与应用》综合性实验报告学生成绩管理系统数据库设计方案学号:201130560210姓名:柯俊展目录一、系统开发目标 (2)二、数据库需求分析 (2)三、数据流图 (2)数据流图: (2)四、数据库设计 (3)E—R图: (3)数据字典: (3)五、逻辑结构设计 (4)关系模式: (4)六、数据库实施 (5)创建表: (5)权限设置: (10)创建触发器: (13)教师输入并查询数据: (13)创建函数: (14)插入数据到score: (15)学生登陆查询信息: (16)教务员登陆查询信息: (16)成绩分析: (17)总结: (18)附录: (19)参考文献: (27)1一、系统开发目标建立一个学生成绩管理数据库系统,用于数据的输入、修改和查询,满足任课教师、学生、教务员等用户的需求。

二、数据库需求分析明确系统的用户,收集和分析用户对系统的信息需求和处理需求:1.任课教师可以对所讲授课程进行成绩输入、修改和查看。

2.学生可以按学号查询自己各门功课的成绩、总成绩、平均分、在班级中的排名等。

3.教务员可以查询全体学生的成绩、对学生成绩进行排名等。

问题假设:4.此问题中只有一个班,四位同学,三位教师授课(即三门课,分别是英语、高等数学、数据库应用),一位教务员。

5.查看平台是ORACLE SQL/Plus平台。

三、数据流图数据流图:2学生查询处理:四、数据库设计根据以上信息,得出实体——联系图E—R图:数据字典:(1)数据项描述数据项名称:学生依据号码查询成绩别名:学号含义:唯一标识一个学生身份类型:字符型长度:20(2)数据结构描述名称:学生含义说明:定义一个学生有关信息组成结构:学号+姓名名称:教师3含义说明:定义一个教师有关信息组成结构:教师号+教师名名称:课程含义说明:定义一个课程有关信息组成结构:课程号+课程名名称:成绩含义说明:定义一个学生成绩有关信息组成结构:学号+课程号+分数(3)数据流(非数据项)说明数据流名称:输入成绩含义:教师给学生输入成绩来源:教师组成:学号+课程号+分数(4)数据存储说明数据存储名称:学生信息表含义说明:存放学生有关信息组成结构:学号+学生名字数据存储名称:教师信息表含义说明:存放教师有关信息组成结构:教师号+教师名数据存储名称:课程信息表含义说明:存放课程有关信息组成结构:课程号+课程名数据存储名称:成绩信息表含义说明:存放学生成绩有关信息组成结构:学号+课程号+分数(5)处理过程说明处理过程名称:审核教师号,课程号输入:教师号,课程号输出:认定合理的学生成绩处理过程名称:学号输入:学号输出:认定教师给学生成绩以上只给出学生成绩查询系统数据字典部分数据项、数据结构、数据流、数据存储和处理过程的描述。

五、逻辑结构设计关系模式:学生(学号,学生姓名)4课程(课程号,课程名)教师(教师号,教师名)教授(学号,教师号)成绩(学号,课程号,分数)根据分析,此上的关系模式符合第三范式(3NF),不包含部分函数依赖和传递函数依赖。

是可行的学生成绩查询系统。

六、数据库实施创建表:第一个student表:5第二个project表:第三个grade表:67第四个teacher表:第五个teaching表:8第六个score表:9权限设置:以上是创建角色teacher_role,student_role分别授予用户teacher_user1, teacher_user2 ,eacher_user3,student_user;创建headteacher_user授予管理员权限。

这样便于管理。

不足之处:不能授予用户teacher_user1, teacher_user2,teacher_user3只能更新行的权限。

创建触发器:教师输入并查询数据:教师一更新数据:教师二更新数据:教师三更新数据:教师更新数据如下:创建函数:创建getsunscore函数:创建getaveragescore函数:插入数据到score:学生登陆查询信息:教务员登陆查询信息:成绩分析:总结:实验并不简单,但我真的能学习了很多东西。

以上全部由我参考《数据库系统原理与应用——Oracle版》这本书所做的。

花了三天时间,学到了很多东西,值了。

虽是考试前所做的,但实际在考试的时候由于紧张又忘记得一干二净,很伤心很伤心。

附录:权限设置:set serveroutput on教师角色:create role teacher_role;grant update(tograde) on grade to teacher_role;grant select on grade to teacher_role;学生角色:create role student_role;grant select on score to student_role;教务员:create user headteacheridentified by headdefault tablespace userstemporary tablespace tempquota unlimited on users;grant DBA to headteacher;教师用户:create user teacher_user1identified by tea1default tablespace userstemporary tablespace tempquota unlimited on users;grant update(tograde) on grade where(projectid='20122') to teacher_user1; grant update(tograde) on grade.projectid='20121' to teacher_user1 ;grant teacher_role to teacher_user1;create user teacher_user2identified by tea2default tablespace userstemporary tablespace tempquota unlimited on users;grant teacher_role to teacher_user2;grant update(tograde) on grade to teacher_user2 where projectid='20122'; grant teacher_role to teacher_user2;create user teacher_user3identified by tea3default tablespace userstemporary tablespace tempquota unlimited on users;grant teacher_role to teacher_user3;grant update(tograde) on grade to teacher_user3 where projectid='20123'; grant teacher_role to teacher_user3;学生用户:create user student_useridentified by studdefault tablespace userstemporary tablespace tempquota unlimited on users;grant student_role to student_user;grant create session to student_user,teacher_user1,输入:connect teacher_user1/tea1;connect teacher_user2/tea2;connect teacher_user3/tea3;update system.grade set tograde='85' where studentid='201130560211' and projectid='20121';update system.grade set tograde='89' where studentid='201130560212' and projectid='20121';update system.grade set tograde='98' where studentid='201130560213' and projectid='20121';update system.grade set tograde='79' where studentid='201130560214' and projectid='20121';update system.grade set tograde='84' where studentid='201130560211' and projectid='20122';update system.grade set tograde='88' where studentid='201130560212' and projectid='20122';update system.grade set tograde='75' where studentid='201130560213' and projectid='20122';update system.grade set tograde='94' where studentid='201130560214' and projectid='20122';update system.grade set tograde='87' where studentid='201130560211' andprojectid='20123';update system.grade set tograde='92' where studentid='201130560212' and projectid='20123';update system.grade set tograde='93' where studentid='201130560213' and projectid='20123';update system.grade set tograde='90' where studentid='201130560214' and projectid='20123';select * from system.score;select * from system.grade;创建表:1.create table student(studentid varchar2(12) primary key,stuname varchar2(8));插入数据:insert into student values('201130560211','刘伟'); insert into student values('201130560212','张三'); insert into student values('201130560213','李四'); insert into student values('201130560214','王菲');2.create table project(projectid varchar2(5) primary key,proname varchar2(12));插入数据:insert into project values('20121','高等数学'); insert into project values('20122','英语');insert into project values('20123','数据库应用'); 3.create table grade(studentid varchar2(12),projectid varchar2(5),tograde number(3,1),primary key(studentid,projectid),constraint k_studentid foreign key(studentid)references student(studentid),constraint k_projectid foreign key(projectid)references project(projectid));插入数据:insert into grade values('201130560211','20121',''); insert into grade values('201130560211','20122','');insert into grade values('201130560211','20123',''); insert into grade values('201130560212','20121',''); insert into grade values('201130560212','20122',null); insert into grade values('201130560212','20123',''); insert into grade values('201130560213','20121',''); insert into grade values('201130560213','20122',''); insert into grade values('201130560213','20123',''); insert into grade values('201130560214','20121',''); insert into grade values('201130560214','20122',''); insert into grade values('201130560214','20123','');4.create table teacher(teacherid varchar2(9) primary key,teaname varchar2(8));插入数据:insert into teacher values('201130561','林小盼');insert into teacher values('201130562','王金雅');insert into teacher values('201130563','黄顺得');5.create table teaching(studentid varchar2(12) ,teacherid varchar2(9),constraint j_studentid foreign key(studentid)references student(studentid),constraint j_teacherid foreign key(teacherid)references teacher(teacherid));插入数据:insert into teaching values('201130560211','201130561'); insert into teaching values('201130560211','201130562'); insert into teaching values('201130560211','201130563'); insert into teaching values('201130560212','201130561'); insert into teaching values('201130560212','201130562'); insert into teaching values('201130560212','201130563'); insert into teaching values('201130560213','201130561'); insert into teaching values('201130560213','201130562'); insert into teaching values('201130560213','201130563'); insert into teaching values('201130560214','201130561'); insert into teaching values('201130560214','201130562'); insert into teaching values('201130560214','201130563');6.create table score(studentid varchar2(12) primary key,english number(3,1),math number(3,1),oracleproject number(3,1),sumscore number,averscore number,constraint z_studentid foreign key(studentid)references student(studentid));插入数据:insert into score values('201130560211',0,0,0,0,0);insert into score values('201130560212',0,0,0,0,0);insert into score values('201130560213',0,0,0,0,0);insert into score values('201130560214',0,0,0,0,0);插入数据:insert into score select studentid from student;update score set math=(select tograde from grade wherestudentid='201130560211' and projectid='20121')wherestudentid='201130560211'; update score set english=(select tograde from grade wherestudentid='201130560211' and projectid='20122')wherestudentid='201130560211'; update score set oracleproject=(select tograde from grade wherestudentid='201130560211' and projectid='20123')wherestudentid='201130560211'; update score set math=(select tograde from grade wherestudentid='201130560212' and projectid='20121')wherestudentid='201130560212'; update score set english=(select tograde from grade wherestudentid='201130560212' and projectid='20122')wherestudentid='201130560212'; update score set oracleproject=(select tograde from grade wherestudentid='201130560212' and projectid='20123')wherestudentid='201130560212'; update score set math=(select tograde from grade wherestudentid='201130560213' and projectid='20121')wherestudentid='201130560213'; update score set english=(select tograde from grade wherestudentid='201130560213' and projectid='20122')wherestudentid='201130560213'; update score set oracleproject=(select tograde from grade wherestudentid='201130560213' and projectid='20123')wherestudentid='201130560213'; update score set math=(select tograde from grade wherestudentid='201130560214' and projectid='20121')wherestudentid='201130560214'; update score set english=(select tograde from grade wherestudentid='201130560214' and projectid='20122')wherestudentid='201130560214'; update score set oracleproject=(select tograde from grade wherestudentid='201130560214' and projectid='20123')wherestudentid='201130560214';select * from system.score;update score set sumscore=(getsumscore('201130560211'))where studentid='201130560211';update score set sumscore=(getsumscore('201130560212'))where studentid='201130560212';update score set sumscore=(getsumscore('201130560213'))where studentid='201130560213';update score set sumscore=(getsumscore('201130560214'))where studentid='201130560214';update score set averscore=(getaveragescore('201130560211'))where studentid='201130560211';update score set averscore=(getaveragescore('201130560212'))where studentid='201130560212';update score set averscore=(getaveragescore('201130560213'))where studentid='201130560213';update score set averscore=(getaveragescore('201130560214'))where studentid='201130560214';修改表的方法:alter table score add(linenum number);select * from system.score order by sumscore desc;执行函数:declarebegingetsumscore('201130560211');end;/函数:create or replace function getsumscore(p_studentid char)return number assum_num number;i number;j number;beginsum_num:=0;select tograde into i from grade where studentid=p_studentid and projectid='20121';select tograde into j from grade where studentid=p_studentid and projectid='20122';select tograde into k from grade where studentid=p_studentid and projectid='20123';sum_num:=i+j+k;return sum_num;end getsumscore;/create or replace function getaveragescore(p_studentid char)return number assum_num number;aver_num number;i number;j number;k number;beginsum_num:=0;select tograde into i from grade where studentid=p_studentid and projectid='20121';select tograde into j from grade where studentid=p_studentid and projectid='20122';select tograde into k from grade where studentid=p_studentid and projectid='20123';sum_num:=i+j+k;aver_num:=sum_num/3;return aver_num;end getaveragescore;/过程:create or replace procedure getstudentnum()asdeclarecursor cursorgetaverscore isselect averscore from system.score;kjz_averscore number;i1 number;i2 number;i4 number;i5 number;begini1:=0;i2:=0;i3:=0;i4:=0;i5:=0;open cursorgetaverscore;fetch cursorgetaverscore into kjz_averscore;while cursorgetaverscore%found loopif kjz_averscore>=90 theni1:=i1+1;elsif kjz_averscore>=80 theni2:=i2+1;elsif kjz_averscore>=70 theni2:=i3+1;elsif kjz_averscore>=60 theni2:=i4+1;elsei5:=i5+1;end if;fetch cursorgetaverscore into kjz_averscore;end loop;close cursorgetaverscore;dbms_output.put_line('分析成绩分布:');dbms_output.put_line('平均分大于90分有'||i1||'个');dbms_output.put_line('平均分小于90大于80分有'||i2||'个');dbms_output.put_line('平均分小于80大于70分有'||i3||'个');dbms_output.put_line('平均分小于70大于60分有'||i4||'个');dbms_output.put_line('平均分小于60分有'||i5||'个');end;/触发器:create or replace trigger tri_gradebefore insert or update or delete on system.gradedeclareerr_constant constant char(30):='不能在休息日改变学生的成绩。

相关文档
最新文档