学生成绩管理系统 数据库设计(内含sql查询语句)
学生成绩管理系统——SQL数据库技术

《SQL数据库技术》课程设计一、题目:学生成绩管理二、因为我做的是学生成绩管理,所以数据库中至少有个一个表是来存储学生的各课成绩的。
有了学生成绩,得知道这个成绩是哪个学生的,所以此表中也得有学生姓名,但是学生姓名肯定有重复的,所以得必须有个标志来惟一标识一个学生,所以得给每个学生一个编号(学号),但是也得必须清楚,这个成绩是哪门课程的,所以给课程定义了一个编号。
之后,得想到有了学生成绩表,总得有个表来存放学生信息吧,所以又建立一个学生信息表,此表中的必须的字段得有学号、姓名、班级,其他的字段可以根据需要来添加。
然后就是得有个课程表来存放哪个教师教哪门课程信息,所以此表中至少得有课程号,课程名称和教师的惟一标识(教师编号),再有一个表来存放教师的信息的,其中的字段必须有教师编号,教师姓名和所在的部门,当然也可以有教师出生日期、职称、电话号码等字段。
总之,这个学生管理系统总共包括四个表学生信息表student、教师信息表teacher、成绩表score和课程表course。
Student表:在建表时,除了添加学号、姓名、班级必要字段,还添加一些其他的字段,比如:出生日期、性别、邮箱地址和类型等。
Teacher表:在建表时,除了添加教师编号,教师姓名,部门必要字段,还可以添加一些其他的字段,比如:出生日期、性别、和电话等。
Score表:此表应该包括学生学号、课程号和成绩等。
Course表:应包括课程号,对应的课程名称和教此课程的教师编号。
(1)、建立一个数据库,然后在此数据库中建立这四个数据表。
(2)、向表中添加记录。
(3)、用一些查询语句来查看表中的特定记录。
(4)、向表中添加一些字段。
如:向teacher表中添加字段tel(5)、创建一个自定义数据类型,并修改student表中的某个字段为此数据类型。
(6)、创建几个视图⏹查询某个班级的学生信息⏹查看每门课程的平均成绩⏹查看选修计算机课程的学生信息⏹查看所有男教师和所有男学生的信息(7)、创建几个存储过程● 显示成绩表中的课程号在课程表中且所任教师性别为男、计算机系的成绩表● 显示某学生的学号,姓名,所学课程号,课程名称和对应的成绩● 在执行此存储过程时,如果没有给出参数(学生姓名),则输入全部的学生的学号,姓名,班级,任课教师编号及其姓名,所学课程名称和成绩,如果有,则显示此学生的以上信息。
数据库课程设计学生成绩管理系统SQL

数学与计算机学院课程设计说明书课程名称: 大型数据库-课程设计课程代码: 8424141 题目: 学生成绩管理系统年级/专业/班:学生姓名:学号:开始时间:2012 年 6 月 12 日完成时间:2012 年6月30 日课程设计成绩:指导教师签名:年月日目录摘要 ............................................................................................................................ 错误!未定义书签。
引言 (3)1 开发环境 (3)1.1 硬件环境 (3)1.2 软件环境 (4)1.2.1 SQL Server 2005、Delphi7简单介绍 (4)2 需求分析 (6)2.1 信息需求 (6)2.2 功能需求 (6)3概念结构设计 (6)4逻辑结构设计 (6)5 数据库实现 (7)5.1 创建数据库 (7)5.2 创建数据表格 (8)6数据库的运行和维护 (9)6.1 数据定义 (9)6.2 数据查询 (10)6.2.1 单表查询 (10)6.2.2 连接查询 (10)6.2.3 操作结果集查询 (11)6.2.4 嵌套查询 (11)6.3 数据库的更新 (11)6.3.1插入数据 (11)6.3.2 修改数据 (11)6.3.3 删除数据 (12)6.4 数据库索引 (12)6.4.1 建立索引 (12)6.4.2 删除索引 (12)6.4 数据库视图 (12)6.5 数据库的安全性 (14)6.6数据库的完整性 (14)7 Delphi7软件实现 (15)7.1 界面设计 (15)7.2 数据库连接 (16)7.3 登陆权限 (16)7.3.1 用户登陆设计 (16)7.3.2 权限管理设计 (16)7.4 管理界面 (17)7.5 查询界面 (17)7.6 统计界面 (17)7.7 报表界面 (17)2程序测试 (18)8.1 测试环境 (18)8.2功能测试 (18)8.3 问题汇总 (18)结论 (18)参考文献 (19)引言在我国,各大中小学校的各类信息管理系统并非一个新的课题。
原创SQL数据库学生管理系统

原创SQL数据库学生管理系统一、简介SQL数据库学生管理系统是一款用于管理学生信息的数据库系统。
该系统采用结构化查询语言(SQL)作为数据管理和查询的工具,通过对学生信息进行有效的组织和管理,实现了学生基本信息的录入、查询、修改和删除等功能。
本文将介绍该数据库系统的设计思路、功能模块和操作流程。
二、数据库设计1. 数据表设计数据库中包含以下几个数据表:•学生表(students):存储学生的基本信息,包括学生ID、姓名、性别、年龄等字段。
•课程表(courses):存储学生所选课程的信息,包括课程ID、课程名称、学分等字段。
•成绩表(scores):存储学生的成绩信息,包括学生ID、课程ID、成绩等字段。
2. 数据库关系设计学生表与课程表之间的关系是多对多关系,通过中间表(选课表)来建立关联关系。
选课表(selections)包含了学生ID和课程ID两个字段,用于记录学生所选课程的关系。
各个数据表之间的关系如下图所示:+------------+| students |+------------+|| 多对多关系|+------------+| courses |+------------+|| 一对多关系|+------------+| scores |+------------+三、功能模块SQL数据库学生管理系统包含以下几个功能模块:1. 学生信息管理模块该模块实现学生信息的录入、查询、修改和删除功能。
管理员可以通过该模块进行学生信息的管理,包括添加新的学生信息、查询学生信息、修改学生信息和删除学生信息等操作。
2. 课程信息管理模块该模块实现课程信息的录入、查询、修改和删除功能。
管理员可以通过该模块进行课程信息的管理,包括添加新的课程信息、查询课程信息、修改课程信息和删除课程信息等操作。
3. 成绩管理模块该模块实现学生成绩的录入、查询、修改和删除功能。
管理员可以通过该模块进行学生成绩的管理,包括添加学生成绩、查询学生成绩、修改学生成绩和删除学生成绩等操作。
数据库课程设计_学生成绩管理系统

1。
概述1.1 简单介绍本系统实现的内容该学生成绩管理系统,实现简单的密码修改、成绩查询、课程查询、学生查询等操作,并能实现简单的数据统计。
此系统主要完成用户密码登录、用户密码的修改、成绩查询、课程查询、学生查询、具体成绩查询等基本功能.(一)用户密码登录:在登录程序之前会先弹出一个登录对话框,在正确的输入了数据库中存储的用户和密码后才能登录程序.(二)用户密码的修改在成功登录了程序之后用户可以根据自己的需要修改当前密码.(三)成绩查询1。
成绩修改前选中要修改的成绩信息,然后进行修改。
2.成绩添加直接弹出添加对话框,然后进行添加。
3.成绩删除前选中要删除的成绩信息,然后直接删除。
(四) 课程查询1。
课程修改实现对课程名、学时、学分的修改。
2.课程添加对一门新开设的课程进行录入,并存入数据库。
3。
课程删除对一门不再开设的课程进行删除,并从数据库中删除。
(五)学生查询1。
学生信息修改修改选中当前学生的信息。
2。
学生信息添加增加新学生的信息。
3。
学生信息删除删除选中当前学生信息。
1。
2 开发环境简介1)Microsoft visual c++ 6。
0Visual C++是一个功能强大的可视化软件开发工具。
自1993年Microsoft公司推出Visual C++1。
0后,随着其新版本的不断问世,Visual C++已成为专业程序员进行软件开发的首选工具.Visual C++6.0不仅是一个C++编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated development environment,IDE)。
Visual C++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具. 这些组件通过一个名为Developer Studio的组件集成为和谐的开发环境。
2)Microsoft SQL Server 2000和与系统相关的SQL 语言介绍数据定义DDL(data definition language)数据定义语言是指对数据的格式和形态下定义的语言,他是每个数据库要建立时候时首先要面对的,举凡数据分哪些表格关系、表格内的有什么栏位主键、表格和表格之间互相参考的关系等等,都是在开始的时候所必须规划好的.2。
SQL server2008数据库课程设计范例——学生成绩管理系统

数据库技术与应用课程设计说明书题目:学生成绩管理系统院系:专业班级:学号:学生姓名:指导教师:2014年12 月22 日一概述1.1目的与要求随着科技的发展,基本上所有的具有一定数量数据的机构都开始使用计算机数据库来做管理。
几乎所有学校也都已经在使用计算机管理数据的机制,大大减少了学校学生成绩管理的工作量。
该课程设计要求设计一个学生成绩的数据库管理系统,数据库中要求包含学生的基本信息,学科基本信息,以及学生所学课程的考试成绩。
要方便学生进行成绩查询,通过该课程设计,应该达到把数据库理论知识更加的巩固加深,加强动手能力与实践能力,学以致用,与现实生活中的应用充分的结合起来。
1.2设计环境① Microsoft SQL Server 2000② Microsoft Visual C++ 6.0二需求分析2.1 系统功能要求设计此系统实现如下系统功能:(1)使得学生的成绩管理工作更加清晰、条理化、自动化。
(2)通过用户名和密码登录系统,查询课程基本资料,学生所选课程成绩,修改用户密码等功能。
容易地完成学生信息的查询操作。
(3) 设计人机友好界面,功能安排合理,操作使用方便,并且进一步考虑系统在安全性,完整性,并发控制,备份和恢复等方面的功能要求。
2.2 系统模块设计成绩管理系统大体可以分成二大模块如,一是学生的基本信息模块,里面应该包含学生的各方面的基本信息;再者便是课程管理模块,在该模块中应该包含有对学生成绩信息的查询和处理,如平均成绩、最好成绩、最差成绩以及不及格学生的统计等功能模块;再其次还有教师、课程等相关信息的模块;可以得到系统流程图:2.3数据项是数据库的关系中不可再分的数据单位,下表分别列出了数据的名称、数据类型、长度、取值能否为空。
利用SQL Server 2000建立“学生选课”数据库,其基本表清单及表结构描述如下:三概念模型设计由需求分析的结果可知,本系统设计的实体包括:(1)学生基本信息:学号,姓名,性别,地址,年龄,专业。
sqlserver数据库设计学生成绩表

SQL Server数据库设计学生成绩表一、概述在学生管理系统中,成绩表是学校管理的重要组成部分。
通过数据库设计学生成绩表,可以方便地记录和管理学生的成绩信息,提供给教师和学生查询和分析成绩的便利。
本文将介绍如何使用SQL Server进行数据库设计,创建学生成绩表。
二、数据库设计的步骤1.需求分析在设计学生成绩表之前,首先需要进行需求分析。
学生成绩表主要包括学生基本信息和各门课程的成绩信息。
学生基本信息包括学生尊称、学号、性别、班级等,成绩信息包括课程名称、成绩、考试日期等。
在需求分析阶段,需要明确每个字段的数据类型、长度以及是否允许为空等,以及学生成绩表和其他表之间的关系。
2.数据库表设计根据需求分析的结果,可以开始进行数据库表设计。
在SQL Server中,可以通过SQL语句或者图形化工具(如SQL Server Management Studio)来创建数据库表。
对于学生成绩表,可以创建两张表:学生信息表和成绩表。
学生信息表包括学生的基本信息,成绩表包括学生成绩信息。
通过主键和外键来建立学生信息表和成绩表之间的关联。
3.字段设计在创建数据库表时,需要为每个字段选择合适的数据类型和长度。
学生尊称可以使用nvarchar类型,成绩可以使用float类型。
对于日期字段,可以使用datetime类型。
需要考虑字段是否允许为空,是否需要设置唯一约束等。
4.索引设计针对查询频繁的字段,可以考虑创建索引来提高查询性能。
在成绩表中可以为学生学号和课程名称字段创建索引,以加快根据学号和课程名称查询成绩的速度。
5.视图和存储过程设计在数据库设计中,可以考虑创建视图和存储过程来简化复杂的查询和操作。
可以创建一个视图来汇总每个学生的总成绩,或者创建存储过程来插入成绩信息并进行成绩统计。
6.权限设计对于学生成绩表,需要合理地设计用户权限,以保护成绩信息的安全性。
可以使用数据库角色和权限来限制用户对成绩表的访问和操作,确保只有授权的用户才能进行相关操作。
学生成绩管理系统数据库设计-(全)

“学生成绩管理”数据库设计文档0、前言(一些必要的说明。
)0.1 数据库说明数据库名:PXSCJ逻辑名称:学生成绩数据库数据文件:PXSCJ.mdf日志文件:PXSCJ_Log登录名:admin,密码:1234560.2表命名说明Cjb:成绩表,保存选课信息Cxb:查询表,记录boolean值对应信息,1代表男,0代表女。
Kcb:课程表。
Tjb:统计表,统计成绩段分布。
Xsb:学生表。
Yhb:用户表,保存系统用户信息。
Jsb: 教师表。
Skb:授课表,记录授课信息。
0.3 系统功能模块图1、 需求分析阶段说明:学生成绩管理系统需要实现以下功能:一个学生可以选修多门课程,一门课程可以由多个学生选修,学生选修一门课会有一个成绩。
一个教师可以教授多个班级,一个教师也可以教授多门课程,一个班级有多个学生,一门课程也可以由多个老师来上,一个老师给一个班级上一门课有确定的时间和地点。
不同的用户根据身份不同拥有不同的权限。
(1) 数据流图老师----成绩管理,学生信息管理,权限管理---学生成绩管理系统—成绩查询--学生(要求:用visio 实现第一层数据流图,第二层数据流图,第三层数据流图)p121老师学生学生成绩管理系统成绩管理信息管理权限管理成绩查询修改密码第一层数据流图第二层数据流图第三层数据流图(略)(2)数据字典(每个实体的详细说明)2、 概念设计阶段(1) 分ER 图(两个分ER 图,1)学生和课程,2)教师,课程,班级)(2) 总ER 图(由分ER 图画出总ER 图)学生选课教师课程授课班级nm mnp3、逻辑设计阶段(1)表关系图(看是否可以画出)(2)表结构图Xsb结构Kcb结构Cjb结构Yhb结构Jsb结构Skb结构Tjb结构Cxb结构(3)表优化(判断每个关系是否达到3NF要求,如果没有达到,则继续规)按照(1nf->2nf->3nf进行判断和优化)Cjb(xh,kch,cj)码:(xh,kch)非主属性:cj因为cj完全依赖于(xh,kch),所以属于2NF因为不存在传递函数依赖,所以属于3NFCxb(xb,xbm)码:(xbm)非主属性:xb因为xb完全依赖于(kch),所以属于2NF因为不存在传递函数依赖,所以属于3NFJsb(jsbh,jsxm,zy,fy,zc,zw,bz)码:(jsbh)非主属性:jsxm,zy,fy,zc,zw,bz因为jsxm,zy,fy,zc,zw,bz完全依赖于(kch),所以属于2NF因为不存在传递函数依赖,所以属于3NFKcb(kch,kcm,kkxq,xs,xf)码:(kch)非主属性:kcm,kkxq,xs,xf因为kcm,kkxq,xs,xf完全依赖于(kch),所以属于2NF 因为不存在传递函数依赖,所以属于3NFSkb(jsbh,kch,bj,sj,dd)码:(jsbh,kch,bj)非主属性:sj,dd因为sj,dd完全依赖于(jsbh,kch,bj),所以属于2NF因为不存在传递函数依赖,所以属于3NFTjb(kch,rs1,rs2,rs3,rs4,rs5)码:(kch)非主属性:rs1,rs2,rs3,rs4,rs5因为rs1,rs2,rs3,rs4,rs5完全依赖于(kch),所以属于2NF 因为不存在传递函数依赖,所以属于3NFXsb(xh,xm,xb,cssj,bj,zy,zxf,bz,lxfs,zp)码:(xh)非主属性:xm,xb,cssj,bj,zy,zxf,bz,lxfs,zp因为xm,xb,cssj,bj,zy,zxf,bz,lxfs,zp完全依赖于(xh),所以属于2NF 因为不存在传递函数依赖,所以属于3NFYhb(yhbh,yhm,mm,bz)码:(yhbh)非主属性:yhm,mm,bz因为yhm,mm,bz完全依赖于(yhbh),所以属于2NF因为不存在传递函数依赖,所以属于3NF4、物理设计选择合适的DBMS(要求用sql server 2008)5、实施(把sql语句贴在下面)(1)创建数据库(把sql语句贴在下面)create database pxscj1on(name='pxscj1_data',filename='f:\pxscj1_data.mdf',size=3mb,filegrowth=10%)log on(name='pxscj1_log', filename='f:\pxscj1_log.ldf', size=4mb,maxsize=6mb,filegrowth=1mb)(2)创建表(把sql语句贴在下面)create table xsb(xh char(6)not null primary key, xm char(8)not null,xb bit,cssj datetime,bj varchar(50)not null,zy char(12),zxf int,bz varchar(500),lxfs varchar(50),zp varbinary(max))create table kcb(kch char(3)not null primary key, kcm char(16)not null,kkxq tinyint,xs tinyint,xf tinyint)create table cjb(xh char(6),kch char(6),cj int,constraint c1primary key(xh,kch) )create table yhb(yhbh char(6)primary key not null, yhm char(8),sf varchar(20),mm char(6),bz varchar(5))create table jsb(jsbh char(6)not null primary key,jsxm char(8),zy varchar(30),fy varchar(30),zc varchar(20),zw varchar(20),bz varchar(50))create table skb(jsbh char(6)not null,kch char(3)not null,bj varchar(50)not null,sj varchar(20),dd varchar(50),constraint c2primary key(jsbh,kch,bj) )create table tjb(kch char(3)primary key not null,rs1int,rs2int,rs3int,rs4int,rs5int)create table cxb(xb bit not null,xbm char(4)not null primary key)(3)数据库完整性2)视图学生选课情况视图(学号,姓名,课程号,课程名,成绩,学分,总学分,教师)create view xs_xk_viewasselect xsb.XH,XM,kcb.KCH,kcm,CJ,xf,zxf,jsb.jsbh,jsxmfrom xsb,KCB,CJB,jsb,skbwhere xsb.XH=cjb.XH and kcb.KCH=cjb.KCHand cjb.KCH=skb.kch and skb.jsbh=jsb.jsbhselect*from xs_xk_view3)自定义数据库类型学号,课程号可以考虑用自定义的数据类型。
sql学生成绩管理系统课程设计数据库

sql学生成绩管理系统课程设计数据库————————————————————————————————作者:————————————————————————————————日期:目录CHAP 1 需求分析 (2)1.1需求分析 (2)1.1。
1 数据需求 (2)1。
1。
2 功能描述 (2)1.2数据字典 (2)1.3数据流图 (5)CHAP 2 概念模型设计 (6)2.1 E-R模型 (6)2.1.1 数据库的局部E-R图 (6)2。
1.2 数据库完整E-R图 (7)CHAP 3 逻辑模型设计 (8)3。
1 E-R图向关系模型的转换 .................. 错误!未定义书签。
3。
2 数据模型的规范化 (8)CHAP 4 数据库的物理设计 (9)4.1系统结构设计 (9)4.1。
1系统功能模块 (9)4。
1。
2管理员功能模块................. 错误!未定义书签。
4。
1。
3用户功能模块................... 错误!未定义书签。
CHAP 5 数据库的实施.. (10)5。
1 创建数据库 (10)5。
1。
1 创建表 (10)5。
1。
2 创建索引 (12)5.1。
3 创建触发器..................... 错误!未定义书签。
5.2组织数据入库 (12)CHAP 6 数据库的运行于维护 (12)设计心得 (17)参考文献 (18)学生成绩管理系统数据库CHAP 1 需求分析1.1需求分析高校学生的成绩管理工作量大、繁杂,人工处理非常困难。
学生成绩管理系统借助于计算机强大的处理能力,大大减轻了管理人员的工作量,并提高了处理的准确性。
学生成绩管理系统的开发运用,实现了学生成绩管理的自动化,不仅把广大教师从繁重的成绩管理工作中解脱出来、把学校从传统的成绩管理模式中解放出来,而且对学生成绩的判断和整理更合理、更公正,同时也给教师提供了一个准确、清晰、轻松的成绩管理环境。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
create database 学生成绩管理系统
go
use 学生成绩管理系统
go
create table 系(
系编号char(15) NOT NULL UNIQUE,
系名称char(20) NOT NULL UNIQUE,
constraint 系pk primary key(系编号,系名称) )
create table 专业(
专业编号char(15) NOT NULL UNIQUE,
专业名char(20) NOT NULL UNIQUE,
系编号char(15) NOT NULL,
constraint 专业pk primary key(专业编号,专业名),
constraint FK_系_专业foreign key(系编号) references 系(系编号)
)
create table 班级(
班号char(15) NOT NULL UNIQUE,
班名char(20) NOT NULL UNIQUE,
专业编号char(15) NOT NULL,
constraint 班级pk primary key(班号,班名),
constraint FK_专业_班级foreign key(专业编号) references 专业(专业编号) )
create table 学生(
学号char(15) NOT NULL UNIQUE,
姓名char(20) NOT NULL,
性别char(5),
年龄int,
班号char(15),
constraint 学生pk primary key(学号),
constraint 性别ck check(性别='男' or 性别='女'),
constraint 年龄ck check(年龄>0 and 年龄<90),
constraint FK_班级_学生foreign key(班号) references 班级(班号)
)
create table 课程(
课程号char(15) NOT NULL UNIQUE,
课程名char(20) NOT NULL,
学时int,
学分float,
开课学期char(20),
课程性质char(10),
constraint 课程pk primary key(课程号),
constraint 课程性质ck check(课程性质='选修' or 课程性质='必修')
)
create table 选课(
学号char(15) NOT NULL,
课程号char(15) NOT NULL,
成绩float,
constraint 选课pk primary key(学号,课程号),
constraint 成绩ck check(成绩>=0 and 成绩<=100),
constraint FK_学生_选课foreign key(学号) references 学生(学号),
constraint FK_课程_选课foreign key(课程号) references 课程(课程号)
)
create view 学生成绩(学号,姓名,班级,课程名,成绩,学分绩点)
AS
select 选课.学号,姓名,班级=(select 班名from 班级where 班号=(
select 班号from 学生where 学生.学号=选课.学号)),
课程名,成绩,学分绩点=
case
when 成绩>=90 then 学分*4
when 成绩<90 and 成绩>=85 then 学分*3.5
when 成绩<85 and 成绩>=80 then 学分*3
when 成绩<80 and 成绩>=75 then 学分*2.5
when 成绩<75 and 成绩>=70 then 学分*2
when 成绩<70 and 成绩>=65 then 学分*1.5
when 成绩<65 and 成绩>=60 then 学分*1
when 成绩<60then 学分*0
end
from 学生,课程,选课
where 学生.学号=选课.学号and 课程.课程号=选课.课程号。