学生成绩管理系统_数据库设计(内含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)引言在我国,各大中小学校的各类信息管理系统并非一个新的课题。
学生成绩管理系统数据库设计书

学生成绩管理系统数据库设计书1、开发背景信息社会的高科技,商品经济化的高效益,使计算机的应用已普及到经济和社会生活的各个领域。
计算机虽然与人类的关系愈来愈密切,还有人由于计算机操作不方便继续用手工劳动。
基本上所有的具有一定数量数据的企事业单位或机关部门都开始使用计算机数据库来做管理。
当然几乎所有学校也都已经在使用计算机管理数据的机制,大大减少了学校学籍管理的工作量。
该课程设计要求设计一个成绩管理的数据库系统,数据库中要求包含学生的根本信息,学校所有专业信息,学校教师信息以及课程设置的信息。
同时还要设计它们之间的关系,如学生与课程关系和学生的成绩等,最后还要对一些数据进行查询,如查询学生成绩的各种集合等。
我们通过该课程设计,应该到达的目的是把数据库理论知识更加的稳固加深,加强动手能力与实践能力,学以致用,与现实生活中的应用充分的结合起来。
为了适应现代社会人们高度强烈的时间观念,成绩管理系统软件为教学办公室带来了极大的方便。
通过操作手册,使用者可以了解本软件的根本工作原理。
操作人员只需输入一些简单的汉字、数字,即可到达自己的目标。
现今学习成绩管理的繁索给具有强烈时间观念的行政人员带来了诸多不便,教学办公室缺少一种完善的学习成绩软件,为了对学生档案的管理方便,因此开发了本软件。
通过本系统软件,能帮助教研人员利用计算机,快速方便的对学生成绩管理进行管理、输入、输出、查找的所需操作,使散乱的人事档案能够具体化、直观化、合理化。
2、功能描述本系统是一个学生管理系统,主要应用于大学的学生管理。
由于对系统的分析可能不够全面,只能是模拟一下学生管理系统。
每个学生都有一个学号,且没有相同的,所以可以以学号为,密码先使用默认的每个学生后6 位数,这样,同学们就可以自行登陆学生管理系统了,并可以对密码进行更改。
老师也要进行登陆,所以,还要给分配老师,密码,同样,老师可以自己更改密码。
输入,密码,无误后,并可登陆了。
老师登陆后与学生登陆后有不同的权限。
sql学生成绩管理系统

一、创建学生成绩管理数据库1、学生成绩管理数据库概念模型(E—R图)如下:2、在查询分析器中创建学生成绩管理数据库,数据库名为“学生成绩管理表”,物理文件的存储位置为:“E:\学生成绩管理表\XSCJGLB”;⑴打开查询分析器,在查询分析器中输入如下代码创建数据库CREATEDATABASE学生成绩管理表ONPRIMARY(NAME=XSCJGLB_DATA,FILENAME='E:\学生成绩管理表\XSCJGLB.MDF',SIZE=5,FILEGROWTH=10%)LOGON(NAME=XSCJGLB_LOG,FILENAME='E:\学生成绩管理表\XSCJGLB.LDF',SIZE=1,MAXSIZE=10,FILEGROWTH=10)⑵单击运行按钮,显示运行结果如图1所示图1建立数据库⑶在企业管理器中窗体示意图如图2所示图2企业管理器学生成绩管理数据库示意图3、根据数据库概念模型(E—R图)建立基本表如下:学生表(学号,姓名,性别,出生日期,系部,班级,备注)课程表(课程号,课程名,开课日期,任课教师)成绩表(学号,课程号,成绩)4、在查询分析器中在学生成绩管理数据库中新建表:USE学生成绩管理表CREATETABLE学生表(学号CHAR(8)PRIMARYKEYNOTNULL,姓名CHAR(10)NOTNULL,性别CHAR(2)NULL,出生日期SMALLDATETIMENOTNULL,系部CHAR(30)NULL,班级CHAR(30)NULL,备注TEXTNULL,CONSTRAINT约束1CHECK(性别IN('男','女'))) CREATETABLE课程表(课程号CHAR(4)PRIMARYKEYNOTNULL,课程名CHAR(30)NOTNULL,开课日期TINYINTNULL,任课教师CHAR(10)NULL,CONSTRAINT约束2CHECK(开课日期LIKE'[1-6]')) CREATETABLE成绩表(学号CHAR(8)NOTNULL,课程号CHAR(4)NOTNULL,成绩TINYINTNULL,CONSTRAINT约束3CHECK(成绩BETWEEN1AND100),CONSTRAINT约束4PRIMARYKEYCLUSTERED(学号,课程号),CONSTRAINT约束5FOREIGNKEY(学号)REFERENCES学生表(学号),CONSTRAINT约束6FOREIGNKEY(课程号)REFERENCES课程表(课程号),)⑸单击运行按钮,显示运行结果如图3所示图3建表示意图⑹在企业管理器中查看设计界面①在企业管理器中窗体示意图如图4所示图4企业管理器中各表②企业管理器中学生表设计示意图,图5所示图5学生表③企业管理器中课程表表设计示意图,图6所示图6课程表④企业管理器中成绩表设计示意图,图7所示图7成绩表二、在企业管理器中创建关系图⑴打开企业管理器中学生成绩管理表数据库,选择“关系图”,右击“关系图”选项,如图8所示,弹出快捷菜单⑵在弹出的快捷菜单中选中新建数据库关系图弹出图9对话框,单击【下一步】按钮,在可用的表中将学生表、成绩表、课程表添加到右侧列表框中,出现图10所示对话框,单击【下一步】查看选中的表,如图11所示图8关系图快捷菜单图9关系图向导对话框图10添加表对话框图11完成数据库关系向导⑶单击【完成】按钮,出现如图12所示关系图图12学生成绩管理表关系图⑷在弹出的“另存为”对话框中输入学生表关系图如图13所示图13保存学生表关系图三、在企业管理器中创建视图⑴打开企业管理器中学生成绩管理表数据库,选择“视图”,右击“视图”选项,如图14所示,弹出快捷菜单图14“视图”快捷菜单⑵在弹出的菜单中选择“新建视图命令”,将弹出“学生成绩管理表”中的“新视图”,如图15所示,在对话框上半部分的灰色框内右击,从弹出的快捷菜单中选择“添加表”命令,出现如图16所示“添加表”对话框图15新视图窗口图16添加表对话框⑶在“添加表”对话框内,选择表学生表、成绩表、课程表,单击【添加】按钮,关闭“添加表”对话框,返回新视图窗口,如图17所示图17添加表后视图⑷在列中选择要添加到视图中的字段,学号、课程号选择成绩表中的字段,每个字段只选一次,如图18所示图18向视图中添加所需字段⑸添加表后新视图窗口如图19所示图19添加表后视图⑹单击【保存】按钮,在“另存为”对话框中输入学生表视图,如图20所示,单击【确定】按钮,完成视图的建立图20保存视图四、使用VBCREATEDATABASE学生成绩管理表ONPRIMARY(NAME=XSCJGLB_DATA,FILENAME='d:\学生成绩管理表Bdata.mdf',SIZE=10,maxsize=500,FILEGROWTH=10)LOGON(NAME=XSCJGLB_LOG,FILENAME='d:\学生成绩管理表data.ldf',SIZE=5,MAXSIZE=100,FILEGROWTH=10)CREATETABLE学生表(学号CHAR(12)PRIMARYKEYNOTNULL,姓名CHAR(6)NOTNULL,性别CHAR(2)NULL,出生日期char(8)NOTNULL,系部CHAR(30)NULL,班级CHAR(30)NULL,CONSTRAINT约束1CHECK(性别IN('男','女')))createtable课程表(课程号CHAR(4)NOTNULL,课程名CHAR(30)NOTNULL,开课日期datetime,任课教师CHAR(10),CONSTRAINT约束2CHECK(开课日期LIKE'[1-6]'))alterTABLE成绩表(学号CHAR(12)NOTNULL,课程号CHAR(4)NOTNULL,成绩INTNULL,CONSTRAINT约束3CHECK(成绩BETWEEN1AND100),CONSTRAINT约束4PRIMARYKEYCLUSTERED(学号,课程号),CONSTRAINT约束5FOREIGNKEY(学号)REFERENCES学生表(学号),CONSTRAINT约束6FOREIGNKEY(课程号)REFERENCES课程表(课程号))createviewview1asselect学生表.姓名,成绩表.课程号,成绩表.成绩from学生表,成绩表where学生表.学号=成绩表.学号createviewview2asselect课程表.课程号,课程表.开课日期from课程表,成绩表where课程表.课程号=成绩表.课程号。
学生成绩在线管理系统数据库课程设计mysql+java

学生成绩在线管理系统数据库课程设计mysql+java以下是一个学生成绩在线管理系统的数据库设计示例,使用MySQL数据库和Java 编程语言:1. 学生表(students)-学生ID(student_id):主键,自增-学生姓名(student_name):varchar类型,最大长度为50-学生年龄(student_age):整数类型-学生性别(student_gender):varchar类型,最大长度为10-学生班级(student_class):varchar类型,最大长度为502. 课程表(courses)-课程ID(course_id):主键,自增-课程名称(course_name):varchar类型,最大长度为503. 成绩表(scores)-成绩ID(score_id):主键,自增-学生ID(student_id):外键,关联到学生表的学生ID-课程ID(course_id):外键,关联到课程表的课程ID-分数(score):浮点数类型通过以上表的设计,你可以实现以下功能:-添加学生信息-添加课程信息-添加学生成绩-查询学生信息-查询课程信息-查询学生的成绩-更新学生信息-更新课程信息-更新学生成绩-删除学生信息-删除课程信息-删除学生成绩在Java中,你可以使用JDBC(Java Database Connectivity)来连接MySQL数据库并执行SQL语句来实现对数据库的操作。
你需要配置数据库连接信息,并编写相应的Java代码来执行查询和更新操作。
这只是一个简单的数据库设计示例,你可以根据你的具体需求进行调整和扩展。
学生成绩管理系统数据库设计-(全)

“学生成绩管理”数据库设计文档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需求分析高校学生的成绩管理工作量大、繁杂,人工处理非常困难。
学生成绩管理系统借助于计算机强大的处理能力,大大减轻了管理人员的工作量,并提高了处理的准确性。
学生成绩管理系统的开发运用,实现了学生成绩管理的自动化,不仅把广大教师从繁重的成绩管理工作中解脱出来、把学校从传统的成绩管理模式中解放出来,而且对学生成绩的判断和整理更合理、更公正,同时也给教师提供了一个准确、清晰、轻松的成绩管理环境。
sql学生成绩信息管理系统数据库设计报告

哈尔滨理工大学软件学院课程设计报告课程:数据库课程设计题目:学生成绩信息管理的数据库设计班级:软件10-8班专业:软件工程姓名:岳世崇学号:1014010825指导教师:王春英日期:2011年12月30日一、数据库的背景及功能需求在要求你为哈尔滨理工大学设计一个学生成绩管理系统的数据库,背景如下:哈尔滨理工大学有多学科的大学,学生在自己本身必修课程之后选修课程,从而获得学分,学生成绩管理系统,通过按照,授课教师,学生信息,课程信息,成绩信息,建立起联系,例如:管理员可以修改学生的信息,删除,修改,学生信息,包括学生联系方式,住址等等,给学生的各科成绩打分.同时可以修改教师的个人信息,住址等信息。
二、数据库的概念结构设计每个学生都要有一个学号,并记录姓名,身份证号,年龄,性别,电话号码,主修,年级,班级,籍贯,学生密码等,每个教师都要有一个教师编号,并记录姓名,授课名称,性别,电话等信息。
每一门课都要有一个课程编号,课程名及所对应的教师编号等,成绩包括学生的学号及课程号和成绩的多少,管理员通过数据库对相应的学生信息(如名,身份证号,年龄,性别等),教师信息,课程信息,学生成绩进行编辑,学生成绩的录入。
学校的课程有计算机组成原理,离散数学,英语,机械电子,车辆工程,环境工程,软件编程,电气概念等科目,对应各自的课程编号。
学生的班级信息包括其专业年级,班级。
在网上查询系统中,每个用户都分配了用户名(全局唯一)和密码,其中,用户名就是学号,密码为学生自身的密码,可以修改。
三、数据库的逻辑结构设计四、数据库的物理结构设计第一范式在关系中属性都原子的Bc范式:在第一范式的基础上满足以下两个条件之一一a推出b是平凡的函数依赖二a是关系的一个超码第三范式:函数依赖集F是关系的一个函数依赖集F的闭包中所有的函数依赖型如a推出b至少有以下之一成立一a推出b是平凡的函数依赖二a是关系的一个超码三b—a中的每个属性都包含在关系的一个候选码中学生个人信息;学号,姓名,身份证号,年龄,性别,电话号码,主修,年级,班级,籍贯,学生密码属于,bc范式教师个人信息:教师编号、课程编号,姓名,住址,籍贯,电话号码,职务,性别,属于bc范式图书:图书编号,名称、作者、条形码、出版地、出版社、出版时间、属于bc范式课程信息:课程编号、课程名、教师编号、课程等级,属于bc范式学生成绩:学号、课程编号,成绩分数.属于bc范式选课:学号,课程号.属于bc范式教授:课程号,教师编号。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
m n
N1
N4
1
N2
1 1
N3
1
create database 学生成绩管理系统
go
use 学生成绩管理系统
go
create table 系(
系编号 char(15) NOT NULL UNIQUE,
系名称 char(20) NOT NULL UNIQUE,
constraint 系pk primary key(系编号,系名称)
)
学 生 学号
性别 年龄 姓名 属于
班 级
班号 属于 专 业 开设 系 专
业 代码
专业名
系编号 系名称
选课 课 程 开设 ISA 必修课 选修课 课程号 课程名 学时 学分 开课学期
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 课程.课程号=选课.课程号。