当前位置:首页 » 操作系统 » 数据库课程设计学生管理系统

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

发布时间: 2025-02-07 16:11:50

㈠ 急求一份完整的数据库课程设计图书管理系统(要求用VB 以及sql-server制作)

1、如果论文页码不多,前置部分并不一定要有,或只加个封面即可。
2、封面、标题等不要太花哨,一般以简洁大方为好。 3、如果论文很厚实,可考虑正反面排版打印。 4、页码较多的论文,可考虑用页眉标注论文标题及层次标题,如单页用文章标题,双页用层次标题。 5、不管论文长短,页码均需标注。页码标注由正文的首页开始,作为第1页,可以标注在页眉或页脚的中间或右边。论文的前置部分、封三和封底不编入页码。附件部分一般单独编排页码。 6、封底底色与封面一致为好,若用底图则与封面应有相关性。 7、若用订书钉装订,两枚钉应分别居于上下沿四分之一处,左缩进1厘米处
可以发你一份参考

㈡ 200分2天内求大学本科数据库课程设计!急!急!

一、课程设计的内容
本课程设计要采用本课程中学习的数据库设计方法,运用其基本思路与主要图表工具完成“企业报刊订阅管理系统”数据库应用系统。完成信息需求分析与数据库的概念设计、逻辑设计、物理设计以及处理功能设计,用SQL Sever的数据库管理系统、JSP开发工具实现该系统,并运行、评价、改进之;在此基础上严格按课程设计教学大纲所附报告提纲撰写课程设计报告。通过本课程设计进一步弄懂数据库系统及其相关的基本概念,理解数据库系统的系统结构、主要特点,掌握数据库设计的原理、方法及其基本过程,初步具备数据库应用设计的能力,初步形成运用数据库应用系统解决管理决策中的实际问题的基本素质。
二、课程设计的要求与数据
要求学生结合所学管理知识,在借鉴课堂教学案例、了解家人或亲友所从事的业务及其流程的基础上,参考有关资料,选择自己了解的一项业务,运用课堂所学数据库系统与数据库设计知识,完成信息需求分析、数据库概念设计、逻辑设计、物理设计,实现完成该业务的数据库应用系统,并运行、评价改进之,最后要写出课程设计报告。
三、课程设计应完成的工作
要求学生按照《数据库应用课程设计》教学大纲完成一个数据库应用系统,并撰写相应的课程设计报告,主要内容包括:
概述:系统的基本任务,主要业务,开发目标
1. 需求分析
2. (数据库)概念(模型)设计
3. (数据库)逻辑(模型)设计
4. 数据库物理设计与数据库保护设计
5. 处理功能设计
6. 数据库应用系统的实现
7. 数据库应用系统运行
四、课程设计进程安排
序号 设计各阶段内容 地点 起止日期

五、应收集的资料及主要参考文献
[1] 王 珊、陈 虹编着,数据库系统原理教程,清华大学出版社,2003.
[1] 金银秋主编,数据库原理与设计,科学出版社,2000.
[2] 李建中 王珊,数据库系统原理,电子工业出版社,1998.
[3] 李大友,数据库原理及应用(第二版),清华大学出版社,2000

发出任务书日期: 年 月 日 指导教师签名:

计划完成日期: 年 月 日 基层教学单位责任人签章:

主管院长签章:
目录
概述 …………………………………………………………………4
1. 需求分析…………………………………………………………4
1.1用户需求……………………………………………………………………4
1.2业务流程分析………………………………………………………………4
1.3信息需求分析………………………………………………………………5
1.4功能需求分析………………………………………………………………6
2. (数据库)概念(模型)设计…………………………………7
3. (数据库)逻辑(模型)设计…………………………………9
3.1 一般逻辑模型设计…………………………………………………………9
3.2 具体逻辑模型设计…………………………………………………………9
4. 数据库物理设计与数据库保护设计…………………………10
4.1设计索引……………………………………………………………………10
4.2 设计表间关系………………………………………………………………10
4.3完整性设计…………………………………………………………………10
5. 处理功能设计…………………………………………………11
6. 数据库应用系统的实现………………………………………11
7. 数据库应用系统运行…………………………………………11
7.1 写出系统操作使用的简要说明……………………………………………11
7.2 系统实施过程………………………………………………………………11
7.3系统使用结果………………………………………………………………22
7.4系统评价……………………………………………………………………31

企业报刊订阅管理系统
概述
随着社会不断的发展,人们的生活水平越来越高,对知识的和对时事的渴求也越来越高,人们希望能够方便快捷地订阅各种报刊杂志。但是各种各样的报刊名目和详细信息以及订阅,为相关企业的管理造成很大的麻烦。因此网上订阅成为不可或缺的一部分。
本系统就是面向一个企业的报刊订阅管理系统。此系统是一种比较智能化的管理系统,它面向所有企业部门的职工用户,但具有比较高的安全性能。它能够实现报刊订阅的基本功能,包括新报刊信息的录入、订阅、查询等操作以及后台数据库的备份和恢复。用户合法注册后必须输入有效密码才能成功进入此系统,可以进行订阅报刊,查询信息,统计信息等操作。对于非法操作,系统有识别和防护措施。

1. 需求分析
1.1 用户需求:
本系统就是面向一个企业的报刊订阅管理系统。此系统是一种比较智能化的管理系统,它面向所有企业部门的职工用户,但具有比较高的安全性能。它能够实现报刊订阅的基本功能,包括新报刊信息的录入、订阅、查询等操作以及后台数据库的备份和恢复。用户合法注册后必须输入有效密码才能成功进入此系统,可以进行订阅报刊,查询信息,统计信息等操作。对于非法操作,系统有识别和防护措施。
订阅信息处理的特点是订阅信息处理量比较大,所管理的信息信息种类繁多,而且订阅单、编辑单的发生量特别大,关联信息多,查询和统计的方式各不相同。因此在管理上实现起来有一定因难。
本系统在设计过程中,为了克服这些困难,需要使程序代码标准化,软件统一化,确保软件的可维护性和实用性;删除不必要的管理冗余,实现管理规范化、科学化;界面友好、简单化,做到实用、方便,尽量满足报刊订阅中员工的需要。

1.2 业务流程分析:
本系统主要面向的用户有系统管理员、读者。下面分角色对该系统的不同操作范围做说明。
本系统主要有以下功能模块:
(1)登陆功能:登陆系统为身份验证登录。分为管理员登录和一般用户登录。分别通过不同的用户名和密码进入报刊订阅管理界面,新的用户需要注册。
(2)录入新信息功能:对于管理员,包括新用户信息和新报刊信息的录入功能,信息一旦提交就存入到后台数据库中;普通用户自行注册进行可以修改个人信息。
(3)订阅功能:用户可以订阅报刊,系统自动计算所需金额,并显示在界面上;管理员不可订阅报刊,必须以用户身份订阅报刊。
(4)查询功能:用户可以查询并显示自己所订阅的信息;管理员可以按人员、报刊、部门分类查询。查询出的信息显示在界面上,并且可以预览和打印出结果。
(5)统计功能:管理员可以按用户、部门、报刊统计报刊的销售情况,并对一些重要的订阅信息进行统计;普通用户可以统计出自己的订阅情况,并且可以预览和打印出结果。
(6)系统维护功能:数据的安全管理,主要是依靠管理员对数据库里的信息进行备份和恢复,数据库备份后,如果出了什么意外可以恢复数据库到当时备份的状态,这提高了系统和数据的安全性,有利于系统的维护。
下图为该系统的业务流程图

1.3 信息需求分析
1.3.1 资料收集:业务流程中用到的相关单据主要是报刊信息还有订单信息
报刊信息表:
报刊代号 46-250 报刊名称 IT时代周刊
出版报社 科技出版社
出版周期 半月刊
每月定价 10.00 元/月
分类编号 1001
报刊介绍 《IT时代周刊》是一本深刻解读信息时代商业变革的杂志。除深度报道信息产业的重大新闻外,还报道金融、汽车、股市、零售等传统行业利用IT提升商业与管理的新闻。《IT时代周刊》以调查见深度;以商业故事见功力。是CEO/CIO/CFO以及政府官员、商业领袖首选刊物。
订单信息表:
订单编号 报刊代号 用户编号 订阅日期 订阅月数 份数 操作
3003 46-205 3206 2008-7-1 订一月 1 取消订阅
3004 26-306 3108 2008-7-8 订半年 2 取消订阅
3005 72-310 3100 2008-7-9 订一年 1 取消订阅
3006 45-214 2541 2008-7-10 订一季 1 取消订阅

1.3.2 事项分析:根据以上资料中标题、表头等中各栏目名,可以得出相关事项,作为数据项;分析这些数据项,找出组合项、导出项、非结构化数据项,确定基本项。检查是否有要补充的基本数据项,是否有要改进的地方,补充改进之,得出所有基本项。
1.4 功能需求分析:
本系统的主要结构功能图如下:

2. (数据库)概念(模型)设计
基本项构思ERD的四条基本原则:
①原则1 (确定实体):能独立存在的事物,例如人、物、事、地、团体、机构、活动、事项等等,在其有多个由基本项描述的特性需要关注时,就应把它作为实体。
②原则2 (确定联系):两个或多个实体间的关联与结合,如主管,从属,组成,占有,作用,配合,协同等等,当需要予以关注时,应作为联系。实体间的联系可分为一对一、一对多、多对多等三类,在确定联系时还要确定其类型。
③原则3 (确定属性):实体的属性是实体的本质特征。实体应有标识属性(能把不同个体区分开来的属性组),并指定其中一个作为主标识。联系的属性是联系的结果或状态。
④原则4(一事一地):信息分析中得到的基本项要在且仅在实体联系图中的一个地方作为属性出现。

经过上述系统功能分析和需求总结,设计如下面所示的数据项和数据结构。
 管理员表(Adminuser):用于存放管理员的数据记录,包括数据项:管理员名、密码。
 部门表(Department):用来存放部门的相关记录,包括数据项:部门号,部门名。
 用户表(Users):用于存放注册用户的记录,包括数据项:用户账号、密码、真实姓名、身份证号、联系电话,联系地址,部门号(和部门表有关)等。
 报刊类别表(NewspaperClass):用于存放初始的报刊类别记录,包括数据项:分类编号、分类名称。
 报刊信息表(Newspaper):用于存放报刊记录,包括数据项:报刊代号、报刊名称、出版报社、出版周期、季度报价、内容介绍、分类编号(和报刊类别表有关)等。
 订单表(Order):用于存放用户下达的订阅报刊的基本信息,包括数据项:订单编号、用户编号(用户表的主码)、报刊代号(报刊信息表的主码)、订阅份数、订阅月数等。

根据上面的设计规划出来的实体有部门实体、管理员实体、用户实体、报刊类别实体、报刊信息实体和订单实体。
部门实体的E-R图如下图所示: 管理员实体的E-R图如下图所示:

用户实体的E-R图如下图所示: 报刊信息实体的E-R图如下图所示:

订单实体的E-R图如下图所示: 报刊类别实体的E-R图如下图所示:

所有实体之间的的关系E-R图如下图所示:

3. (数据库)逻辑(模型)设计
3.1 一般逻辑模型设计:
关系模型的逻辑结构是一组关系模式的集合。将E-R图转换为关系模型就是要将实体型、实体的属性和实体型之间的联系转换为关系模式。
由ERD导出一般关系模型的四条原则;
①一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果软换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。如果与某一端实体对应的关系模式何明,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。
②一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。
③一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。
④3个或3个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系项链呢的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。

根据以上原则将E-R图转换成的关系模式如下:
部门(部门号,部门名称)
用户(用户账号,密码,用户真实姓名,联系电话,联系地址,部门号)
管理员(管理员名,密码)
报刊类别(分类编号,分类名称)
报刊(报刊代号,报刊名称,出版报社,出版周期,每月订价,内容介绍,分类编号)
订单(用户编号,报刊代号,订阅份数,订阅月数,订阅总额)

3.2 具体逻辑模型设计:
在SQL Server2000数据库中,首先创建newspaper数据库,然后根据数据库的逻辑结构分析创建表4-1━4-6的6张数据表。在前台访问数据库阶段设置了用户和密码,用户为sa,密码为空。
表4-2 department部门表结构
字段名称 字段类型 允许空 说明
depNumber(主码) Char(10) 否 部门号
depName Char(50) 是 部门名称
表4-3 users用户表结构
字段名称 字段类型 允许空 说明
userNo(主码) Char(10) 否 用户帐号
userName Char(20) 是 真实姓名
passWord Char(10) 否 用户密码
address Char(150) 是 用户联系地址
phone Char(20) 是 用户联系电话
depNumber Char(10) 否 用户所属部门号
表4-3 newspaperClass报刊分类表结构
字段名称 字段类型 允许空 说明
classid(主码) Int(4) 否 报刊分类编号
className Char(30) 是 报刊分类名称
表4-4 newspaper报刊表结构
字段名称 字段类型 允许空 说明
newsNo(主码) Char(10) 否 报刊代号
newsName Char(40) 否 报刊名称
classid Int(4) 否 报刊分类编号
publish Char(150) 是 出版报社
pubPeriod Char(30) 是 出版周期
content Char(4000) 是 内容介绍
price Float(8) 否 每月报价
表-6 book订单表结构
字段名称 字段类型 允许空 说明
userNo(主码) Char(10) 否 用户帐号
newsNo(主码) Char(10) 否 报刊代号
orderAmount Int(4) 否 订阅份数
orderMonth Int(4) 否 订阅月数
totalPrice Float(8) 是 订阅总额
表4-1 adminuser管理员表结构
字段名称 字段类型 允许空 说明
adminUser(主码) Char(20) 否 管理员用户名
adminPass Char(10) 否 管理员密码
4. 数据库物理设计与数据库保护设计
4.1设计索引:我们可以在最经常查询的列上建立索引以提高查询效率。
而在这个系统中,我们经常要按用户账号,按报刊代号,按部门查询,所以,我们可以为这三个表建立索引,建立所以的SQL语句如下,这几个都是字符型
Create unique index userNum on users(userNo)
Create unique index departNum on department(depNumber)
Create unique index newsNum on newspaper(newsNO)

4.2 设计表间关系:

4.3完整性设计列出主要字段完整性的字段名、完整性约束条件;列出记录完整性约束及其约束条件;列出参照完整性表。
主要字段的完整性字段名和参照完整性表可以参照上图各个表之间的关系来看。
比如建立报刊表newspaper时,要求报刊代号在100~99999之间,报刊名称和每月定价不能取空值,报刊类别是报刊类别表的主键,则
Create table user
(userNo char(10) constraint C1 check(newsNo between 100 and 99999),
newsName char(40) constraint C2 not null,
classid int(4) constraint C3 not null,
publish char(150),pubPeriod char(30),content char(4000),
price float(8) not null,
constraint C4 foreign key(classid) references newspaperclass(classid) )
4.4在有多个用户操作时,考虑用户授权与安全性控制。
因为这个报刊订阅系统由多个用户使用,分为管理员和用户,他们拥有不同的权限和安全性控制。所以在权限设置方面,采用管理员和用户分别使用用户名和密码进入他们能使用权限范围里的界面。管理员登陆系统后,可以添加、修改用户和报刊的信息,可以对订单进行查询和统计,并且可以把查询统计的结果进行预览和打印出来,还要对数据库系统进行维护,适时备份数据库,一旦数据库遇到问题,可以恢复到最近备份的状态,减少不必要的损失。
用户登录,用户使用该系统前需要进行注册,他应该是该企业某个部门下面的员工,所以他需要输入他的部门号等信息,注册成功后,登录到系统,可以修改自己的信息还有订阅报刊,但由于权限的限制,他只能查看和统计自己的订单信息。
5. 处理功能设计
5.1 主控模块设计:
使用本系统,首先它会自动弹出“欢迎使用本系统”的欢迎界面,然后跳转到用户身份验证界面,选择管理员的身份进入,有录入(录入报刊信息、录入用户信息),查询,统计(统计用户、统计、报刊订单),系统维护(备份数据库、恢复数据库),注销,退出等菜单可使用,没注册的用户可进入注册界面进行注册,然后返回登录界面登录,进入后有欢迎界面,有订阅、查询、统计、修改、注销、退出等菜单可使用。
6. 数据库应用系统的实现
6.1 数据库及其表结构的建立:按照上面的逻辑分析见表
6.2数据输入:在建好的各个表中输入数据,要符合数据的约束条件
7. 数据库应用系统运行
7.1 写出系统操作使用的简要说明
本系统的运行需要安装PowerBuilder9.0和SQL Server2000软件。操作该系统,首先把备份的数据库还原出来,导入SQL Server中,然后打开该系统,连接上还原出来的数据库,再运行,就可以了。
7.2 系统实施过程
(1)打开PowerBuilder,新建一个工作区,命名为newspaper
(2)新建一个Application,取名newspaper,然后点击工具栏上的DB Profile,新建一个MSS Microsoft SQL Server,填入Profile Name,服务器名,用户名,密码,数据库,如下图,然后输入连接数据库的主要代码:
open(w_welcome)
// Profile newspaper
SQLCA.DBMS = "MSS Microsoft SQL Server"
SQLCA.Database = "newspaper"
SQLCA.ServerName = "CHINA-41CD782EF"
SQLCA.LogId = "sa"
SQLCA.LogPass=""
SQLCA.AutoCommit = False
SQLCA.DBParm = ""
connect;
if sqlca.sqlcode<>0 then
messagebox("错误","数据库连接错误,程序将关闭!",stopsign!)
return
end if
close(w_welcome)
open(w_login)

(3)制作登录页面w_login,在“确定”按钮输入如下:

“注册”按钮代码:open(w_register) //打开用户注册页面
“退出”按钮代码:close(w_login) //退出本系统
(4)制作注册窗口w_register,在“注册”按钮的代码如下:

“取消”按钮代码:close(w_register)
open(w_login)
(5)制作管理员主菜单w_adminview,建管理员主界面w_adminview,将该菜单放到窗口中
(6)制作用户主菜单w_userview,建用户主界面w_userview,将菜单放到窗口中
(7)制作管理员主菜单里的录入报刊信息窗口w_inmagazine,录入用户信息窗口w_inuser,
制作数据窗口dw_magagrid,dw_magafree,dw_userfree,dw_usergrid,在数据窗口调整好外观,添加控件,并设定相应的动作,分别放到这两个窗口中
这两个窗口功能相识,在窗口中输入:
dw_1.settransobject(sqlca)
dw_1.retrieve()
dw_2.settransobject(sqlca)
dw_2.retrieve()

(8)制作管理员主菜单中的查询订阅信息窗口w_searchorder,制作数据窗口dw_booksearch,将其放入窗体中,在窗口中输入代码:
dw_1.settransobject(sqlca)
dw_1.retrieve()
sle_1.setfocus()
在“查询”按钮中输入代码:

“预览”按钮的代码:

“关闭”按钮代码:close(w_searchorder)
数据窗口字段如下:

(9)制作管理员主菜单中的统计用户订单窗口w_statuser,统计部门订单窗口w_statdept,统计报刊订单窗口w_statnews:制作统计数据窗口dw_statnews,dw_statuser,dw_statdept将dw_statnews,dw_statuser,dw_statdept分别放入w_statnews, w_statuser,w_statdept中;以下仅列出按出按部门统计的代码和界面 (按用户、报刊统计类似,略);
按部门统计代码:
窗口代码:
按部门统计数据窗口:
dw_1.settransobject(sqlca)
dw_1.retrieve()
预览键代码:(与上页预览代码相同)
退出:close(parent)

(10)管理员主菜单中的更改登录在w_adminview中的代码

(11)管理员主菜单中的退出系统在w_adminview中的代码

(12)管理员主菜单中的数据库备份窗口w_backup,“开始备份”按钮的代码如下

在“>>”按钮带输入代码:

(13)管理员主菜单中的数据库恢复窗口w_restore,“开始恢复”按钮的代码如下
在“>>”按钮带输入代码:

在“开始恢复”按钮输入代码:

(14)用户主菜单的订阅报刊窗口w_userorder
该系统中定义了一个全局变量gs_userid,其它窗口界面都可以使用该变量,并显示用户名,用户登录后,它会显示“~~~~,欢迎使用本系统!”的欢迎界面。
窗口代码:
dw_1.settransobject(sqlca)
dw_1.retrieve()
sle_1.setfocus()
sle_2.text=gs_userid
“清空”按钮代码:
sle_1.text=""
sle_3.text=""
sle_5.text=""
“退出”按钮代码:
close(w_userorder)
“订阅”按钮代码:

(14)用户主菜单的查询订单窗口w_usersearch,将订单查找dw_booksearch放到窗口里,在窗口中过过滤器筛选中用户自己的订单信息,一打开就可以看到自己的订单信息,可打印和预览结果

窗口代码:

“预览”和“退出”按钮同上
(15)用户主菜单的查询订单窗口w_userstatis,将用户统计dw_statuser放到窗口里,在窗口中过过滤器筛选中用户自己的订单信息,一打开就可以看到自己的订单信息,可打印和预览结果,窗口代码如下:

用户统计dw_statuser数据窗口如下:

“预览”“退出”按钮略
(16)用户主菜单中的修改用户信息窗口w_usermodify,打开会先显示出你的信息,而用户名这一栏是输入不了的,也就是不能修改用户名,窗口代码如下:

“保存”按钮代码如下:

(17)用户主菜单中的更改登录和退出系统的代码和管理员的一样,这里就省略了。
7.3系统使用结果

打开本系统,首先弹出欢迎界面,通常一闪而过,然后到了登录界面,点击“注册”

按确定后,弹出“恭喜,您已注册成功!”的对话框。如果这时刷新服务管理器,打开SQL Server企业管理器,打开该数据库的用户表,就可看到刚才注册的用户已经在表中了

然后返回到登陆页面,输入刚才注册到的用户名和密码maishning,123456

登录后,弹出一个窗口,有供用户使用的菜单,界面显示“~~~~,欢迎使用本系统”

选择“订阅”菜单,在这个订阅界面,用户可以浏览到所有的报刊信息,要订阅报刊时,用户不需输入用户名与密码,只需输入您要订阅的报刊代号(该报刊代号必须是报刊表中存在的),订阅份数(必须是小于8的整数才有效),然后选择需要订阅的月数(一月、一季、半年或一年)然后点击“订阅”按钮

订阅成功后,系统弹出“恭喜!你已成功订阅该报刊,总金额是~~~~”确定后会显示出您所订阅的总额是多少元,按“清空”按钮后可以订阅其它报刊(同样的报刊不可重复订阅)

再订阅其它报刊,然后按“退出”按钮,来到用户主菜单然后选择“查询”菜单,这个数据窗口经过过滤,一打开就直接显示该用户过订阅的订单,可以进行预览和打印。

由于权限的限制,“统计”菜单中的也是只能统计自己订单信息的数据

在“退订”报刊菜单中,可以查看自己的订单,单击“退订”然后“保存”即可完成退订
在“修改”信息菜单中,用户名也是不可输入的文本框,即不可修改用户名,其它信息可以修改,保存后它会自动添加到数据库中

选择菜单上的“注销”,可以用不同的身份进入系统,确定后回到登录界面

以管理员的身份登录,用户名111,密码111,按登录按键,可看到管理员菜单

选择菜单栏中的录入->录入报刊信息,管理员可以大致浏览所有报刊信息,在上面的数据窗口可以查看上一页和下一页的具体内容,并且可以对其进行添加,删除、修改、保存等操作。

录入用户信息页面,基本相似

选择菜单栏中的“查询”->“订单信息”,管理员拥有的权限可以看到所有的订单信息

管理员也可以根据需要分别按部门、按用户、按报刊查询,比如,要查询msishning用户,在文本框中输入关键字,选择单选按钮中的“按部门号”,点击“查询”,结果如下
可对全部订单或查询出来的订单进行预览和打印,方便使用

菜单栏中的“统计”菜单有三个子菜单,管理员可以分别统计用户订单信息、部门订单信息和报刊订单信息, 直接选择就可看到统计结果,比如选择“统计用户订单信息”

可将统计出来的结果进行预览和打印,方便使用,其它两个统计功能相似,略

主菜单中的系统维护->数据库备份,选择备份的位置,然后“开始备份”

主菜单中的系统维护->数据库恢复,选择之前备份的文件,输入路径和数据库名,然后“开始恢复”

7.4系统评价:

java程序设计课程设计 学生信息管理系统 要求:使用图形用户界面用数据库建立1或

import java.awt.*;
import java.awt.event.*;
public class DengLuJieMian extends Frame implements ActionListener
{
Label username=new Label("用户名:");//使用文本创建一个用户名标签
TextField t1=new TextField();//创建一个文本框对象
Label password=new Label("密码:");//创建一个密码标签
TextField t2=new TextField();
Button b1=new Button("登陆");//创建登陆按钮
Button b2=new Button("取消");//创建取消按钮
public DengLuJieMian()
{
this.setTitle("学生信息管理系统");//设置窗口标题
this.setLayout(null);//设置窗口布局管理器
username.setBounds(50,40,60,20);//设置姓名标签的初始位置
this.add(username);// 将姓名标签组件添加到容器
t1.setBounds(120,40,80,20);// 设置文本框的初始位置
this.add(t1);// 将文本框组件添加到容器
password.setBounds(50,100,60,20);//密码标签的初始位置
this.add(password);//将密码标签组件添加到容器
t2.setBounds(120,100,80,20);//设置密码标签的初始位置
this.add(t2);//将密码标签组件添加到容器
b1.setBounds(50,150,60,20);//设置登陆按钮的初始位置
this.add(b1);//将登陆按钮组件添加到容器
b2.setBounds(120,150,60,20);//设置取消按钮的初始位置
this.add(b2);// 将取消按钮组件添加到容器
b1.addActionListener(this);//给登陆按钮添加监听器
b2.addActionListener(this);// 给取消按钮添加监听器

this.setVisible(true);//设置窗口的可见性
this.setSize(300,200);//设置窗口的大小
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});//通过内部类重写关闭窗体的方法
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==b1)//处理登陆事件
{
String name=t1.getText();
String pass=t2.getText();
if(name!=null&&pass.equals("000123"))//判断语句
{
new StudentJieMian();
}
}
}
public static void main(String args[])//主函数
{
new DengLuJieMian();
}
}
以下方法实现了学生界面设计
import java.awt.*;
import java.awt.event.*;
class StudentJieMian extends Frame implements ActionListener
{
MenuBar m=new MenuBar();//创建菜单栏
Menu m1=new Menu("信息");//创建菜单“信息”
MenuItem m11=new MenuItem("插入");//创建“插入”的菜单项
MenuItem m12=new MenuItem("查询");
Menu m2=new Menu("成绩");//创建菜单“成绩”
MenuItem m21=new MenuItem("查询");
public StudentJieMian()
{
this.setTitle("学生界面");//设置窗口标题
this.setLayout(new CardLayout());//设置窗口布局管理器
this.setMenuBar(m);//将菜单栏组件添加到容器
m.add(m1);//将信息菜单放入菜单栏
m.add(m2);
m1.add(m11);//将“插入”菜单项添加到“信息”菜单
m1.add(m12); //将“查询”菜单项添加到“信息”菜单
m2.add(m21); //将“查询”菜单项添加到“成绩”菜单
m11.addActionListener(this); //给“插入”菜单项添加监听器
m12.addActionListener(this); //给“查询”菜单项添加监听器
m21.addActionListener(this); //给“查询”菜单项添加监听器
this.setVisible(true); //设置窗口的可见性
this.setSize(300,200); //设置窗口的大小
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);//关闭窗口
}
});
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==m11) //处理“添加信息”事件
{
new AddStudent();
}
if(e.getSource()==m12) //处理“查询信息”事件
{
new SelectStudent();
}
if(e.getSource()==m21) //处理“查询成绩”事件
{
new ChengJiStudent();
}
}
public static void main(String args[])
{ new StudentJieMian(); //创建一个对象 }

㈣ 求数据库图书管理系统课程设计全套

数据库图书管理系统课程设计:
1、可以参考网上的一些开源项目,根据别人提供的一些思路,进行开发
2、找身边的学长,学姐,他们开发过类似的系统
3、请教老师同学,让他们给你提供一些思路
4、可以参考类似的系统

㈤ 急求一份数据库课程设计

合肥经济技术职业学院
电子信息系

课程设计报告

课程:数据库课程设计

题目:学生管理系统

班级:09计 用

成员:

指导老师:
日期:

目录
第一章 前言 3
1.1 课题简介 3
1.2 设计目的 3
1.3 需求分析 4
第二章 数据库实例的分析及应用 4
2.1 题目和E-R图 4
2.2 数据库的实现 5
2.3 数据库结构属性 8
2.3.1主键(主键约束PRIMARYKEY;索引设置) 8
2.3.2数据库的默认值和规则 13
2.3.3 视图和存储过程 15
2.3.4 触发器 17
第三章 总结报告 19
参考文献 19

第一章 前言
1.1 课题简介
数据库技术是计算机科学技术发展最快,应用最为广泛的技术之一。其在计算机设计,人工智能,电子商务,企业管理,科学计算等诸多领域均得到了广泛的应用,已经成为计算机信息系统和应用的核心技术和重要基础。
本文主要介绍学生成绩管理系统的数据库设计,从需求分析到数据库的运行与维护都进行详细的叙述。本系统是利用SQL开发出来的。通过SQL建立学生成绩管理系统,大大方便和简化了数据的查询和处理,管理员可以通过SQL语言对表内数据进行添加,删除,修改,查询等操作,还可以建立多用户,对其使用权限进行分配和回收。随着数据处理的不断进步和计算机网络的迅速发展,使数据库应用系统不仅在功能而且在结构上都有了深刻的变化,而且运用在生活的每一个方面。通过学习关系代数,关系演算,函数依赖,关系模式分解,关系模式的规范化让我们建立了扎实的关系数据库理论基础。而在掌握基本理论的基础上掌握关系数据库的设计方法,掌握现代信息系统的开发方法也显得尤为必要。目前在关系数据库中用得最多的SQL数据库,开发数据库的语言工具多数用C++.。所以对于计算机专业的学生来说掌握数据库应用的基本技术,熟悉编程语言与SQL数据库的结合运用是我们计算机专业学生之必备本领。本次课程设计是以学生信息管理系统为模拟模型,运用C++编程语言结合SQL数据库所开发系统。
1.2 设计目的
随着学生数量的日益增多,学校对学生的管理要求也越来越高,为了使信息技术与学生信息更好的结合在一起以及使学生成绩的管理更加系统化,数字化,因此我们设计了该学生信息管理系统。运用基于E-R模型的数据库设计方法和关系规范化理论做指导完成从系统的分析到设计直至系统的最终实现,开发学生成绩管理系统,完成学生成绩管理系统的全部功能。首先做好需求分析,并完成数据流图,其次做概念分析,利用实体联系的方法将需求分析的用户需求抽象为信息结构,得到E-R图,然后就是逻辑结构设计,将E-R图转换为计算机系统所支持的逻辑模型。最后利用SQL完成具体的实例。
1.3 需求分析
1、问题的提出:为了高效率的完成学生的管理,决定开发学生管理系统。
2、需完成的功能:
(1)能录入、修改、查询、输出学生的档案信息,这些信息包括学生的成绩、课程、个人信息等。
(2)触发器,索引,约束,规则,默认值,,视图,存储过程的建立及使用。

第二章 数据库实例的分析及应用
2.1 题目和E-R图
随着学生数量的日益增多,学校对学生的管理要求也越来越高,为了使信息技术与学生信息更好的结合在一起以及使学生成绩的管理更加系统化,数字化,因此我们设计了该学生信息管理系统。以下是次学生信息管理系统的E-R图,进一步详细的说明数据库的结构以及用途。实体和属性的定义:
学生表(学生学号,姓名,班级编号)
班级表(班级编号,班级名称,系部编号)
系部表(系部编号,系部名)
教师表(教师名,课程编号,系部编号)
课程表(课程编号,课程名,学分,教师,系部号)
下面是E-R图,用来进一步说明数据库的作用和用途:

2.2 数据库的实现
运用SQL Server 2000数据设计表格的物理结构如下:

班级表:

学生表:

系部表:

课程表:

教师表:

各表关系图:

设计表格的具体填入数据是:
班级表:

学生表:

教师表:

系部表:

课程表:

2.3 数据库结构属性
2.3.1主键(主键约束PRIMARYKEY;索引设置)
1.索引与书目录相似,可以快速找到指定内容。索引通过记录表中的关键值来指向表中的记录,这样数据库就不用扫描而能定位到相关的记录。以下是对各表进行索引的实现。
学生表的设置如图:

班级表的设计如下:

教师表的设计如下:

课程表的设计如下:

系部表的设置如下:

2.约束定义了关于允许什么数据进入数据库的规则,是分配给表或表中某列的一个属性。使用约束的目的在于防止列中出现非法的数据,可以自动维护数据库的数据完整性。下面是用企业管理器对class表实现的主键约束:

2.3.2数据库的默认值和规则
1.使用默认可以实现当用户在向数据表中插入新纪录时,如果没有给出某列的输入值,则由SQL Server自动为该列输入默认值。下面是对class表进行实现默认的功能:

实现默认值:

2.规则也是实现数据完整性的方法之一,作用与CHECK约束类似,在向表的某列插入或更新数据时,用它来限制输入值的取值范围。下面我们运用对Course表进行规则的实现:

2.3.3 视图和存储过程
1.视图的作用相当于一个虚拟表,是用户查看数据库表中数据的一种方式使用户通过他能够以需要的方式浏览表中的部分或全部数据,而数据的物理存放位置仍然在数据库的表中。我们通过在企业管理器中创建视图管理视图应用视图,更加形象具体的说明了视图的作用。
添加表格到视图:

添加数据并运行:

运行结果,具体视图呈现:

2.存储过程是一组编译在单个执行计划中的Transact-SQL语句,它将一些固定的操作集中起来交给SQL-Server数据库服务器完成,以实现某个任务。首先我们在查询管理器中创建存储过程:

并且执行存储过程:

在企业管理器中也可以体现出存储过程:

2.3.4 触发器
触发器的作用是强制执行业务规则。SQL Server主要提供了两种机制来强制业务规则和数据完整性:约束和触发器。触发器在指定的表中数据发生变化时被调用以响应INSERT、UPDATE或DELETE事件。触发器可以查询其他表,并可以包含复杂的语句。SQL Server将触发器和触发它的语句作为可在触发器内回滚的单个事物对待,如果检测到严重错误,则整个事物即自动回滚。首先我们在查询管理器中新建触发器:

新建触发器:

管理触发器:

第三章 总结报告
这次的课程设计真的做起来困难重重,深刻体会到做一个软件,里面需要的很多知识我们没有接触过,去图书馆找书的时候发现,我们学的仅仅是皮毛,还有很多东西需要我们去发掘,就算是借一本书看完它,我们还是会发现还有很多知识没有吃透,这需要我们不断的实践,不断地自学习,不断地发现问题去思考问题。
经过不断地测试,不断地改进,其中还是发现了不少问题,第一次做这些工作,没有任何经验,甚至无从下手,还是很谢谢老师和同学的帮忙,从中也学到了一些代码的写法,为什么要这样写,通过和同学的讨论,找到一些书本上没有的方法,如何数据绑定等等,怎样从数据库中将数据提取出来放到一个文本框或者标签内,这些东西是组成界面的东西,虽然小,但是可以体现整个软件的水平,其实并不需要建多少数据库的表,写多少复杂的存储过程,是不是用了数据库函数,触发器等等,但是至少要弄明白这些东西如果操作,清晰思路才能将功能分清晰。
经过一段时间的学习与实践,学生信息管理系统基本上开发好了。该系统具备了:添加、修改、删除、浏览、查询、输出日程信息,实现了根据用户需求查看日程等功能。作为一个个人日程管理系统,本系统所提供的功能的确太少了一些,仅仅只实现了一些基本的功能,有很多地方还有待扩展和改良。
人如果没有自信,没有目标,没有信心就不可能把事情做好,当其他人都在迷茫的时候,自己一定要坚信目标,大学毕业出去即是面临找工作,从学习这个专业,到以后做这方面的工作都需要不断地去学习去实践,这次实践可以给我们敲一个警钟,我们面临毕业,面临择业,需要这些实践经验,在困难面前要勇于尝试,这是这次课程设计给我的最大感想。在此特别感谢老师的辛苦指导和教育!
参考文献
黄维通编《SQL Server2000 简明教程》
徐人凤 曾建华编《SQL Server2000数据库及应用》

㈥ 谁可以帮忙做下这个题目呀 数据库课程设计

数据库课程设计报告
计网0831数据库课程设计
1、数据的导入和导出今天是数据库实习的第一天,对于我们来说数据库虽然是今年刚刚学过的课程,但是我们已经考试完一段时间了,所以也很久没有翻书本了,很多知识在刚刚做的时候还是很陌生的,不得不翻一下书本,下面就是在第一天实习中所产生的问题报告和分析结果。
在做实训前,老师先给我们讲了数据库如何导入EXCL表,在老师的指导下我们学会了,为创建表提供了方便。
首先我们是建立了一个新的KCSJ数据库,建立的数据语句如下:
用SQL语句在D:\KCSJ下创建课程设计数据库(KCSJ)
(一)CREATE DATABASE KCSJ
ON
(NAME=KCSJ_DATA,
FILENAME='D:\KCSJ_DATA.MDF')
LOG ON
(NAME=KCSJ_LOG,
FILENAME='D:\KCSJ_LOG.LDF')
将KCSJ.XLS文件中的数据导入KCSJ数据库中。导入后在数据库中将生成以下五个基本表:
学生(学号,姓名,性别,年龄,入学成绩,班级,籍贯)
成绩(学号,课程号,成绩)
课程(课程号,课程名,教师名)
三角形(a,b,c,s)
回文数(A1,A2)
其中:a> 学生、成绩、课程、三角形、回文数是表的名字。
b> 学号、姓名、性别、班级、籍贯、课程名和教师名为字符型,长度分别为10 、10、2、6、8、20、10;
c> 入学成绩为整型。
d> 年龄、课程号和成绩为整型或微整型。
e> A1为整型;A2为字符型,长度为2。
f> a、b、c为float类型,代表三角形的三边,s为float类型,代表三角形的面积。
在导入数据库中KCSJ.XLS文件的数据导入的时候是在所有任务--导入数据—数据源为excel97-2000- 文件位置—导入表中的数据—修改类型和长度 最后确定。
用企业管理器创建数据库(JW0831),将KCSJ数据库中的五个表导入该数据库中。
打开所有任务 导入数据源 选择KSCJ 数据库 下一步 再选择jw0831数据库 选择所有 确定 就可以将KCSJ数据库中的五个表导入该数据库中。
简单的结构化查询
--(1)查询学生的详细记录
select*from 学生
--(2)查询学生表中前两个班级(班级名称不能重复)
select top 2 班级 from 学生
group by 班级
在做本题的时候,由于想的比较复杂,外加题意有点模糊,所以转了很大一个圈,并在老师的侧外指导下通过group by分组才把本题做了出来。
--(3)显示把 成绩表中各科学生的成绩加 20 分后的信息
select*from 成绩
where 成绩='成绩'+20
在做本题的时候,由于题意理解错误,所以我先用updata语句来进行更新,但是在做到其它题的时候,听到老师在指导其它同学的时候,把题意一说,我才恍然大悟,自己的方向又错了。然后又重新思考,接着就做出了上面的答案。
--(4)查询来自“宁波” 学生的学号、姓名、籍贯
select 学号,姓名,籍贯 from 学生
where 籍贯='宁波'
--(5)查询选修4号课程且考试成绩在70分以上的学生的学号以及所选修的课程号和成绩,显示前3条结果记录
select top 3*from 成绩
where 成绩>=70 and 课程号='4'
--(6)查询入学成绩在 300-400 分之内的学生的详细情况,并按入学成绩降序排序 ( 用两种方法完成 )
select * from 学生
where 300<入学成绩 and 入学成绩<400 order by 入学成绩 desc
select * from 学生
where 入学成绩 between 300 and 400 order by 入学成绩 desc
--(7)统计学生表中的学生人数
select count(*)from 学生
对于今天的题目做的多了,忽然发现很多题的类型都差不多,都是运用基本的书本知识,然后融会贯通,举一反三,然后不费吹灰之力就做出来了,我说的不费吹灰之力是简单的,但是有些还是费了好大一番功夫的。
--(8)查询学生表中姓李,姓名列包含两个字的学生的基本情况
select * from 学生
where 姓名 like '李_'
--(9)查询名字中第 2 个字为‘北'的学生的基本信息
select * from 学生
where 姓名 like '_北%
在做这几道题的时候,我解决了并也明白了—和%得区别和用途
--(10)查询选修 4 号课程,成绩在 80-90 分之间的学生学号和成绩
select*from 成绩
where 80<=成绩 and 成绩<90 and 课程号='4'
--(11)查询 JW0831 班和 JW0551 班学生的姓名、性别及班级(用谓词查询 in )
select 姓名,性别,班级 from 学生 where 班级 in('JW0831','JW0551')
group by 姓名,性别,班级
对于本道题拿到的时候,还是愣了一下的,因为我忽然不知道什么是,对于用谓词查询 in,自己不会用,在翻书翻了一遍并且询问了同学才发现如何去用它。
--(12)查询缺少成绩的学生的学号和相应的课程号
select 学号,课程号 from 成绩
where 成绩 is NULL
--(13)统计选修了4号课程学生人数
SELECT COUNT(*)AS'人数' FROM 成绩 where 课程号='4'
--(14)查询JW0831班家在河北学生的学号、姓名、性别
select 学号,姓名,性别 from 学生
where 籍贯='河北'and 班级='JW0831'
--(15)检索刘志生老师所授课程的课程号和课程名。
select 课程号,课程名 from 课程
where 教师名='刘志生'
---(16)检索年龄大于23岁的男学生的学号和姓名。
select 学号,姓名 from 学生
where 性别='男' and 年龄>23
--(17)查询学生表中姓李的学生的基本情况
select *from 学生
where 姓名 like '李%'
--(18) 统计学生表中所有学生“入学成绩”的平均分、最高分、最低分
select AVG(入学成绩) as'平均成绩',max(入学成绩) as'最高分',min(入学成绩) as'最低分'from 学生
--(19)查询选修了1号或者3号课程,成绩及格的学生的学号和成绩
select 学号,成绩 from 成绩
where 成绩>=60 and 课程号 in (1,3)
--(20)统计学生表中所有男女生人数
SELECT 性别, COUNT(性别)AS'人数' FROM 学生
group by 性别
对于今天的题除了自己不太熟悉课本知识和同学讨论出来的那些分析外,对于其他的题已经没有什么问题了,因为我把今天的题做完之后,把报告写完的同时,对于明天的题我也进行了一番思考,并且还帮助其他同学解决了一些不会的问题。
星期二 天气 冷 心情 good

3、复杂的结构化查询
--(1)检索至少选修刘志生老师所授课程中一门课程的女学生姓名。
select 学生.学号,姓名,性别,课程.课程号 from 学生,成绩,课程
where 性别='女' and 课程.课程号 in(select 课程号 from 课程 where 教师名='刘志生')and 学生.学号=成绩.学号
and 课程.课程号=成绩.课程号
对于今天的课程设计不是像昨天一样那么简单了,简直是提高了一个很大的层次,简直是一步三晃啊!不容易啊!就像本题一样,在查询的时候要用一个子查询和三个条件才能把它做出来!
--(2)检索吴计算同学不学的课程的课程号。
select 课程号 from 课程 where 课程号 not in(select 成绩.课程号 from 成绩,学生where 姓名='吴计算' and 成绩.学号=学生.学号)
在本题中,用的方法还真是一波三折啊!因为如果要查不学的课程,要先查出他学的课程,然后再排掉学过的!充分运用了not in这个语法
--(3)检索至少选修四门课程的学生学号。
select 学号, count(成绩.学号)as '门数' from 成绩,课程 where 成绩.课程号=课程.课程号
group by 成绩.学号
having count(成绩.学号)>=4
对于本题的用的是count做统计这个数据语句,外加可以用在group by 语句后的having条件语句。通过本题的联系,可以很好的运用count 和having语句
--(4)检索全部学生都选修的课程的课程号与课程名。
select 课程.课程名 ,课程.课程号 from 成绩,课程
where 成绩.课程号=课程.课程号
group by 课程.课程名,课程.课程号
having count(成绩.学号) in (select count(学生.学号)from 学生)
--(5)检索选修课程包含刘志生老师所授课的学生学号。
select 学号 from 成绩,课程
where 教师名='刘志生'and 成绩.课程号=课程.课程号
--(6)统计有学生选修的课程门数。
select 学号, count(成绩.学号)as '门数' from 成绩,课程 where 成绩.课程号=课程.课程号
group by 成绩.学号
--(7)求选修4号课程的学生的平均年龄。
select AVG(年龄)as'平均年龄',成绩.课程号 from 学生,成绩
where 课程号='4' and 学生.学号=成绩.学号
group by 成绩.课程号
--(8)求刘志生老师所授课程的每门课程的学生平均成绩。
select avg(成绩.成绩)as'平均成绩',课程.课程号 from 成绩,课程
where 教师名='刘志生' and 成绩.课程号=课程.课程号
group by 课程.课程号
--(9)统计每门课程的学生选修人数(超过6人的课程才统计)。要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。
select 成绩.课程号, count(成绩.学号)as '人数' from 成绩,课程
where 成绩.课程号=课程.课程号
group by 成绩.课程号
having count(成绩.学号)>=6
order by count(成绩.学号) asc
--(10)检索学号比陆力利同学大,而年龄比他小的学生姓名。
select 学号,姓名 from 学生
where 学号>(select 学号 from 学生 where 姓名='陆力利') and 年龄<(select 年龄 from 学生 where 姓名='陆力利'
--(11)求年龄大于女同学平均年龄的男学生姓名和年龄。
select 姓名,年龄 from 学生
where 性别='男'and 年龄>(select avg(年龄)as'平均年龄'from 学生 where 性别='女')
--(12)统计学生人数超过 5人的班级名称和对应的人数
select 班级,count(学生.学号)as '人数'from 学生
group by 班级
having count(学生.学号)>=5
--(13)检索课程号和选修人数,查询结果按人数升序排列,若人数相同,按课程号降序排列。
select 成绩.课程号, count(成绩.学号)as '人数' from 成绩,课程
where 成绩.课程号=课程.课程号
group by 成绩.课程号
order by count(成绩.学号) asc,成绩.课程号 desc
这道题运用很多知识点,不但用了count 统计 还用了 group by 分组 外加排序
--(14)查询选修课程学生的学号、姓名、所选课程号、取得的成绩
select 学生.学号,学生.姓名,成绩.课程号,成绩.成绩 from 学生,成绩
where 学生.学号=成绩.学号
--(15)查询学生的学号、课程号和成绩等级
select 学号,课程号,成绩,(
CASE
WHEN 成绩>=90 and 成绩<=100 THEN 'A'
WHEN 成绩>=80 and 成绩<90 THEN 'B'
WHEN 成绩>=70 and 成绩<80 THEN 'C'
WHEN 成绩>=60 and 成绩<70 THEN 'D'
ELSE 'E'
END ) as 等级
from 成绩
本题运用了一个新的知识点,这个知识点是在老师的ppt课件上找到的,利用这个语句何以很好很方便的为管理系统中的成绩分等级,所以在本体中一定要记住本语句的语法如:case when……and then ……else end
今天小结,通过今天一天的课程设计,我觉得我收获了很多,因为它让我以前学的不太好的知识点全部都巩固了一遍,尤其是成绩、课程、学生这些表与表的链接,每次不是这里连不上就是那里连不上,但是现在不但可以连上了,还可以帮助其他同学检查出来错误,真是一笔不小的收获,虽然今天做的题比较难,但是每一次在自己的努力下做出来都会有不小的成就感……
3、复杂的结构化查询
星期三 天气 冷 心情 good
外面飘着雪花,美好的一天又已经开始了!实习已经到了一半,离回家的日子也近了很多,所以心情也是越实习越好了!今天的工作当然也完成的比较顺利!虽然有的还挺难的!但是相信自己一定就会成功!嘿嘿……看看自己的劳动成果就知道了!
3、复杂的结构化查询
--(16)查询选修了英语的学生的姓名和成绩;
select 学生.姓名,成绩.成绩 from 成绩,学生,课程
where 课程.课程名='英语'and 学生.学号=成绩.学号 and 课程.课程号=成绩.课程号
group by 学生.姓名,成绩.成绩
--(17)分别统计每个班级的男女人数(要求显示出班级、性别、对应的人数)
SELECT 班级, 性别, COUNT(性别)AS'人数' FROM 学生
group by 班级,性别
--(18)求年龄大于所有女同学年龄的男学生姓名和年龄。
select 姓名,年龄 from 学生
where 性别='男'and 年龄>(select max(年龄) from 学生 where 性别='女')
group by 姓名,年龄

--(19)计算选修了1号课程的学生的平均成绩(要求显示出课程号和对应的平均成绩)
select 课程号,avg(成绩)as'平均成绩'from 成绩
where 课程号='1'
group by 课程号

--(20)查询选修课程学生的学号、姓名、所选课程名、取得的成绩
select 学生.学号,姓名,课程.课程名,成绩.成绩 from 学生,成绩,课程
where 学生.学号=成绩.学号 and 课程.课程号=成绩.课程号
--(21)查询学生的学号、姓名、性别及所选修各门课程的成绩(要求每位学生用一个数据行显示这些信息)

SELECT 学生.学号, 学生.姓名,学生.性别,
(select 成绩 from 成绩 where 课程号='1' and 学生.学号=学号) as '数学',
(select 成绩 from 成绩 where 课程号='2' and 学生.学号=学号) as '英语',
(select 成绩 from 成绩 where 课程号='3' and 学生.学号=学号) as '计算机基础',
(select 成绩 from 成绩 where 课程号='4' and 学生.学号=学号) as '数据库',
(select 成绩 from 成绩 where 课程号='5' and 学生.学号=学号) as '政治',
(select 成绩 from 成绩 where 课程号='6' and 学生.学号=学号) as '体育'

FROM 学生 INNER JOIN 成绩 ON 学生.学号=成绩.学号
GROUP BY 学生.学号, 学生.姓名,学生.性别
--(22)查询李路路所学的课程名和对应的成绩,并按照成绩升序排列。
select 姓名,课程名,成绩 from 学生,课程,成绩
where 姓名='李路路'and 课程.课程号=成绩.课程号 and 学生.学号=成绩.学号
order by 成绩

--(23)查询平均成绩大于 75 分的课程,要求显示课程名和平均成绩。
select 课程名,avg(成绩)as'平均成绩' from 课程,成绩
where 课程.课程号=成绩.课程号
group by 课程名
having avg(成绩)>=75
--(24)查询所选课程平均成绩前三名的那些学生的姓名和平均成绩。
select top 3 学生.学号,姓名,avg(成绩.成绩)as'平均成绩'from 成绩,学生 where 学生.学号=成绩.学号 group by 学生.学号,姓名 order by avg(成绩.成绩) desc

--(25)查询和李工业在同一个班级的学号和姓名
select 学号,姓名 from 学生
where 班级 in (select 班级 from 学生 where 姓名='李工业')

--(26)查询JW0831班中入学成绩比李里高的学生的姓名
select 姓名 from 学生
where 班级='JW0831' and 入学成绩>(select 入学成绩 from 学生 where 姓名='李里')

--(27)在学生表中查询高于入学成绩平均分的学生学号、姓名、班级、入学成绩
select 学号,姓名,班级,入学成绩 from 学生
where 入学成绩>(select avg(入学成绩)as'平均成绩'from 学生)

--(28)查询没有选修课程的学生的学号和姓名
select 学生.学号,学生.姓名 from 学生
where 学号 not in(select 学号 from 成绩 group by 学号 )

--(29)查询选修了 5(含5) 门以上课程的学生的姓名。
select 姓名 from 学生,成绩,课程 where 成绩.课程号=课程.课程号 and 学生.学号=成绩.学号
group by 成绩.学号,姓名
having count(成绩.学号)>=5
--(30)查找同名同姓的学生信息。
select a1.* from 学生 a1,学生 a2
where a1.姓名=a2.姓名 and a1.学号<>a2.学号
星期四 天气 冷 心情 good
数据管理
--(1)利用学生表创建一个新表(不含数据):优秀(学号,姓名,性别),
--然后在学生表中检索每一门课程成绩都大于等于80分的学生学号、姓名和性别,
--并把检索到的值送往优秀表中。
select 学号,姓名,性别 into 优秀 from 学生
where 5>6
insert into 优秀 select 学号,姓名,性别 from 学生 where 学号 in (select 学号 from 成绩 group by 学号 having min(成绩)>=80 )

--(2)把李路路同学的选课和成绩全部删去。
delete from 成绩
where 成绩 in(select 成绩 from 学生,成绩 where 学生.学号=成绩.学号 and 姓名='李路路')
--(3)把低于总平均成绩的女同学成绩提高5%。
UPDATE 成绩 SET 成绩=成绩*(1+0.05) WHERE 成绩<(select avg(成绩.成绩)as'平均成绩'from 成绩) and 学号 in(select 学号 from 学生 where 性别='女')
--(4)把选修数学课不及格的成绩全改为空值。
UPDATE 成绩 SET 成绩=null WHERE 成绩<60 AND 课程号=(select 课程号 from 课程 where 课程名='数学')
--(5)在成绩表修改4号课程的成绩,若成绩小于等于75分时提高5%,若成绩大于75分时提高4%(用两个UPDATE语句实现)。
UPDATE 成绩 SET 成绩=成绩*0.5 WHERE 成绩<=75 and 课程号='4'
UPDATE 成绩 SET 成绩=成绩*0.4 WHERE 成绩>75 and 课程号='4'
--(6)将选修4号课程且成绩没有及格的学生的成绩调整为 60 分。
UPDATE 成绩 SET 成绩=60 WHERE 成绩<60 AND 课程号='4'
自定义函数的使用
编写一函数(hws),判断一个整数是否为回文数,若是函数值为“是”,否则为“否”,利用该函数判断回文数基本表中A1列的整数是否为回文数,若是,则A2列的值为“是”,否则为“否”。
create function hws(@A1 int)
returns char(2)
as
begin
declare @y int,@r int,@c char(2),@z int
select @y=0,@z=@A1
while @A1!=0
select @r=@A1%10,@y=@y*10+@r,@A1=@A1/10
if @y=@z
set @c='是'
else
set @c='否'
return @c
end
update 回文数 set A2=dbo.hws(A1)。
星期五 天气 冷 心情 good
游标的使用
利用游标可以访问单独数据行的特点,逐一对三角形基本表中的数据行(三条边)进行处理,求三角形的面积。
Declare yb cursor
For
Select*from 三角形
Declare @a float,@b float,@c float,@p float,@s float
Open yb
Fetch next from yb into @a,@b,@c,@s
While @@fetch_status=0
Begin
If @a+@b>@c and @a+@c>@b and @b+@c>@a
select @p=(@a+@b+@c)/2.0,@s=round(sqrt(@p*(@p-@a)*(@p-@b)*(@p-@c)),2)
else
set @s=null
update 三角形 set s=@s where current of yb
fetch next from yb into @a,@b,@c,@s
end
close yb
deallocate yb

心得体会
时光匆匆,一个星期的实习已经接近尾声了,对于本次的实习心情就是轻松加愉快,收获也是硕果累累,在老师的安排下,实习的过程是根据每天老师给的任务,按时完成作业然后再把报告写完根据规划每天都有条不絮的干着自己的事情,对于我是一个不会安排时间的人,生活中重来没有规划,所以事情每次干完不是紧一阵就是松一阵的,所以通过这次实习中在老师的安排下,自己也懂得了安排时间的重要性,也从中吸取到了一些经验。
在本次实习中我不仅把本学期学习的数据库基本知识进行了点到点的复习,也把它进行了巩固,在原来没有学好的地方通过本次的实习学的比以前学的更好,不仅如此,我们在做课程设计的时候还学会了独自的思考和协作,有些知识点我们运用的不是很好,但是后面再老实的帮助和在同学的探讨下,最后都把它解决了出来。除此之外,我也感觉到实习并不是因为完成任务而实习,它是为了让我们更好的掌握知识,并把知识运用到生活中去的,就像艺术一样,源于生活,而应用于生活一样。数据库的学习,也是为了以后生活中方便自己方便他人而学习的。
由于每天紧张的课程,一路都是匆匆来匆匆去,所以一个班同学的交流也是很少的,通过实习所以同学之间交流的机会也就比较多了一点,比才的感觉也因此增进了不少,以上就是本次在实习中所得到的心得,至于没有感受到的,将在以后的生活中再次的吸取生活中的经验。来进行学习中的总结。

热点内容
lol注册表文件在哪个文件夹 发布:2025-04-23 03:24:25 浏览:543
c4d编程 发布:2025-04-23 03:21:21 浏览:227
服务器地址及密码 发布:2025-04-23 03:05:53 浏览:268
ct6买哪个配置的好 发布:2025-04-23 03:05:08 浏览:913
c语言输出多组数据 发布:2025-04-23 03:04:21 浏览:577
liststringjava 发布:2025-04-23 02:56:18 浏览:408
asi源码 发布:2025-04-23 02:46:45 浏览:578
小候编程 发布:2025-04-23 02:46:41 浏览:559
网络工程师使用哪些软件写脚本 发布:2025-04-23 02:28:43 浏览:458
c语言短路现象 发布:2025-04-23 02:23:54 浏览:304