学生成绩管理系统 数据库设计内含sql查询语句
- 格式:doc
- 大小:27.50 KB
- 文档页数:3
《SQL数据库技术》课程设计一、题目:学生成绩管理二、因为我做的是学生成绩管理,所以数据库中至少有个一个表是来存储学生的各课成绩的。
有了学生成绩,得知道这个成绩是哪个学生的,所以此表中也得有学生姓名,但是学生姓名肯定有重复的,所以得必须有个标志来惟一标识一个学生,所以得给每个学生一个编号(学号),但是也得必须清楚,这个成绩是哪门课程的,所以给课程定义了一个编号。
之后,得想到有了学生成绩表,总得有个表来存放学生信息吧,所以又建立一个学生信息表,此表中的必须的字段得有学号、姓名、班级,其他的字段可以根据需要来添加。
然后就是得有个课程表来存放哪个教师教哪门课程信息,所以此表中至少得有课程号,课程名称和教师的惟一标识(教师编号),再有一个表来存放教师的信息的,其中的字段必须有教师编号,教师姓名和所在的部门,当然也可以有教师出生日期、职称、电话号码等字段。
总之,这个学生管理系统总共包括四个表学生信息表student、教师信息表teacher、成绩表score和课程表course。
Student表:在建表时,除了添加学号、姓名、班级必要字段,还添加一些其他的字段,比如:出生日期、性别、邮箱地址和类型等。
Teacher表:在建表时,除了添加教师编号,教师姓名,部门必要字段,还可以添加一些其他的字段,比如:出生日期、性别、和电话等。
Score表:此表应该包括学生学号、课程号和成绩等。
Course表:应包括课程号,对应的课程名称和教此课程的教师编号。
(1)、建立一个数据库,然后在此数据库中建立这四个数据表。
(2)、向表中添加记录。
(3)、用一些查询语句来查看表中的特定记录。
(4)、向表中添加一些字段。
如:向teacher表中添加字段tel(5)、创建一个自定义数据类型,并修改student表中的某个字段为此数据类型。
(6)、创建几个视图⏹查询某个班级的学生信息⏹查看每门课程的平均成绩⏹查看选修计算机课程的学生信息⏹查看所有男教师和所有男学生的信息(7)、创建几个存储过程● 显示成绩表中的课程号在课程表中且所任教师性别为男、计算机系的成绩表● 显示某学生的学号,姓名,所学课程号,课程名称和对应的成绩● 在执行此存储过程时,如果没有给出参数(学生姓名),则输入全部的学生的学号,姓名,班级,任课教师编号及其姓名,所学课程名称和成绩,如果有,则显示此学生的以上信息。
数学与计算机学院课程设计说明书课程名称: 大型数据库-课程设计课程代码: 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语句⼤全学⽣成绩表(stuscore):姓名:name课程:subject分数:score学号:stuid张三数学891张三语⽂801张三英语701李四数学902李四语⽂702李四英语802创建表SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGOCREATE TABLE [dbo].[stuscore]( [name] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL, [subject] [varchar](50) COLLATE Chinese_PRC_CI_A问题:1.计算每个⼈的总成绩并排名(要求显⽰字段:姓名,总成绩)2.计算每个⼈的总成绩并排名(要求显⽰字段: 学号,姓名,总成绩)3.计算每个⼈单科的最⾼成绩(要求显⽰字段: 学号,姓名,课程,最⾼成绩)4.计算每个⼈的平均成绩(要求显⽰字段: 学号,姓名,平均成绩)5.列出各门课程成绩最好的学⽣(要求显⽰字段: 学号,姓名,科⽬,成绩)6.列出各门课程成绩最好的两位学⽣(要求显⽰字段: 学号,姓名,科⽬,成绩)7.如下:学号姓名语⽂数学英语总分平均分8.列出各门课程的平均成绩(要求显⽰字段:课程,平均成绩)9.列出数学成绩的排名(要求显⽰字段:学号,姓名,成绩,排名)10.列出数学成绩在2-3名的学⽣(要求显⽰字段:学号,姓名,科⽬,成绩)11.求出李四的数学成绩的排名12.如下:课程不及格(0-59)个良(60-80)个优(81-100)个13.如下:数学:张三(50分),李四(90分),王五(90分),赵六(76分)答案:1.计算每个⼈的总成绩并排名select name,sum(score) as allscore from stuscore group by name order by allscore2.计算每个⼈的总成绩并排名select distinct ,t1.stuid,t2.allscore from stuscore t1,( select stuid,sum(score) as allscore from stuscore group by stuid)t2where t1.stuid=t2.stuidorder by t2.allscore desc3. 计算每个⼈单科的最⾼成绩select t1.stuid,,t1.subject,t1.score from stuscore t1,(select stuid,max(score) as maxscore from stuscore group by stuid) t2where t1.stuid=t2.stuid and t1.score=t2.maxscore4.计算每个⼈的平均成绩select distinct t1.stuid,,t2.avgscore from stuscore t1,(select stuid,avg(score) as avgscore from stuscore group by stuid) t2where t1.stuid=t2.stuid5.列出各门课程成绩最好的学⽣select t1.stuid,,t1.subject,t2.maxscore from stuscore t1,(select subject,max(score) as maxscore from stuscore group by subject) t2where t1.subject=t2.subject and t1.score=t2.maxscore6.列出各门课程成绩最好的两位学⽣select distinct t1.* from stuscore t1 where t1.id in (select top 2 stuscore.id from stuscore where subject = t1.subject order by score desc) order by t1.subject7.学号姓名语⽂数学英语总分平均分select stuid as 学号,name as 姓名,sum(case when subject='语⽂' then score else 0 end) as 语⽂,sum(case when subject='数学' then score else 0 end) as 数学,sum(case when subject='英语' then score else 0 end) as 英语,sum(score) as 总分,(su8.列出各门课程的平均成绩select subject,avg(score) as avgscore from stuscoregroup by subject9.列出数学成绩的排名declare @tmp table(pm int,name varchar(50),score int,stuid int)insert into @tmp select null,name,score,stuid from stuscore where subject='数学' order by score descdeclare @id intset @id=0;update @tmp set @id=@id+1,pm=@idselect * from @ select DENSE_RANK () OVER(order by score desc) as row,name,subject,score,stuid from stuscore where subject='数学'order by score desc10. 列出数学成绩在2-3名的学⽣select t3.* from(select top 2 t2.* from (select top 3 name,subject,score,stuid from stuscore where subject='数学'order by score desc) t2 order by t2.score) t3 order by t3.score desc11. 求出李四的数学成绩的排名declare @tmp table(pm int,name varchar(50),score int,stuid int)insert into @tmp select null,name,score,stuid from stuscore where subject='数学' order by score descdeclare @id intset @id=0;update @tmp set @id=@id+1,pm=@idselect * from @12. 课程不及格(-59)良(-80)优(-100)select subject, (select count(*) from stuscore where score<60 and subject=t1.subject) as 不及格,(select count(*) from stuscore where score between 60 and 80 and subject=t1.subject) as 良,(select count(*) from stuscore where score >80 and su13. 数学:张三(50分),李四(90分),王五(90分),赵六(76分)declare @s varchar(1000)set @s=''select @s =@s+','+name+'('+convert(varchar(10),score)+'分)' from stuscore where subject='数学' set @s=stuff(@s,1,1,'')print '数学:'+@s。
--用户登陆表CREATE TABLE UserLogin(userID BIGINT,userPass V ARCHAR(20)NOT NULL,permission INT NOT NULL,--权限CONSTRAINT PK_UserLoginID PRIMARY KEY(userID),--主键)--教师信息表CREATE TABLE TeaInfo(teaID BIGINT,userName V ARCHAR(20)NOT NULL,sex CHAR(2)NOT NULL,age INT NOT NULL,phoneNum CHAR(11)NOT NULL,CONSTRAINT PK_TeaID PRIMARY KEY (teaID),--主键--教师ID依赖于登陆IDCONSTRAINT FK_TeaLoginID FOREIGN KEY(teaID)REFERENCES UserLogin(userID) ON DELETE CASCADEON UPDATE NO ACTION,--教师年龄约束CONSTRAINT CN_UserAge CHECK(age<150 and age>0),--电话唯一CONSTRAINT AK_TeaphoneNum UNIQUE (phoneNum),)--班级信息表CREATE TABLE ClassInfo(classID BIGINT,className V ARCHAR(30),deptID BIGINT,--系别CONSTRAINT PK_ClassInfoID PRIMARY KEY(classID),--主键)--学生信息表CREATE TABLE StuInfo(stuID BIGINT,classID BIGINT NOT NULL,userName V ARCHAR(20)NOT NULL,sex CHAR(2)NOT NULL,age INT NOT NULL,phoneNum CHAR(11)NOT NULL,startTime VARCHAR(10)NOT NULL,--入学时间CONSTRAINT PK_StuInfoID PRIMARY KEY(stuID),--主键--学生ID依赖于登陆IDCONSTRAINT FK_stuLoginID FOREIGN KEY(stuID)REFERENCES UserLogin(userID) ON DELETE CASCADEON UPDATE NO ACTION,--学生classID依赖于班级信息表的classIDCONSTRAINT FK_stuInClassID FOREIGN KEY(classID)REFERENCES ClassInfo(classID), --学生年龄约束CONSTRAINT CN_StuAge CHECK(age<150 and age>0),--电话唯一CONSTRAINT AK_StuphoneNum UNIQUE (phoneNum),)--课程详细信息表CREATE TABLE CourseInfo(courseID BIGINT,courseName VARCHAR(30),credits INT,period INT,--学时CONSTRAINT PK_CourseInfoID PRIMARY KEY(courseID),--主键)--课表CREATE TABLE Syllabus(classID BIGINT,courseID BIGINT,teacherID BIGINT,classTime VARCHAR(30),--上课时间venue V ARCHAR(50),--上课地点theYear INT,--学年term INT,--学期CONSTRAINT PK_Syllabus PRIMARY KEY(classID,courseID,classTime),--主键--课程ID依赖于课程详细信息表的ID,并随着课程详细信息表删除而删除CONSTRAINT FK_CourseIDSyllabus FOREIGN KEY(courseID)REFERENCES CourseInfo(courseID)ON DELETE CASCADEON UPDATE NO ACTION,--教师ID依赖于教师信息表的IDCONSTRAINT FK_TeaInfoIDSyllabus FOREIGN KEY(teacherID)REFERENCES TeaInfo(teaID),--班级ID依赖于班级信息表,并随着班级信息表删除而删除CONSTRAINT FK_ClassInfoIDSyllabus FOREIGN KEY(classID)REFERENCES ClassInfo(classID)ON DELETE CASCADEON UPDATE NO ACTION,--学期小于CONSTRAINT CN_ReportTerm CHECK(term<4),--学年不能大于当前的年份CONSTRAINT CN_ReportTheYear CHECK(theYear<=YEAR(GETDATE())),)--成绩报表CREATE TABLE Report ( userID BIGINT , courseID BIGINT , grade FLOAT ,CONSTRAINT PK_ReportID PRIMARY KEY (userID ,courseID ),--主键 --成绩报表随着用户的删除而删除CONSTRAINT FK_TeaInfoReportID FOREIGN KEY (userID ) REFERENCES TeaInfo (teaID ) ON DELETE CASCADE ON UPDATE NO ACTION , --课程依赖于课程信息表 CONSTRAINT FK_CourseReportID FOREIGN KEY (courseID ) REFERENCES CourseInfo (courseID ), --成绩约束CONSTRAINT CN_ReportGrade CHECK (grade >=0 and grade <=100), )ClassInfoclassID className deptIDCourseInfocourseID courseName credits periodReportuserID courseID gradetheYear termF K_CourseReportID StuInfostuIDclassID userName sexage phoneNum startTimeF K_stuInClassID SyllabusclassID courseID teacherID classTime venueF K_CourseIDSyllabusF K_ClassInfoIDSyllabus TeaInfoteaID userName sex age phoneNumF K_TeaInfoIDSyllabusF K_TeaInfoReportID UserLoginuserID userPass permissionF K_TeaLoginIDF K_stuLoginID--教师个人课表create view TeacherSyllabus as selectTeaInfo .teaID ,TeaInfo .userName ,CourseInfo .courseID ,CourseInfo .courseName ,Syllabus .classTim e ,Syllabus .Venue ,Syllabus .classID ,Syllabus .theYear ,Syllabus .term from Syllabusleft join CourseInfo onSyllabus.courseID=CourseInfo.courseIDleft join TeaInfo onSyllabus.teacherID=TeaInfo.teaID--学生个人课表create procedure StudentSyllabus@stuID bigintasselectStuInfo.stuID,erName,CourseInfo.courseID,CourseInfo.courseName,Syllabus.classTim e,Syllabus.venue,Syllabus.teacherID,Syllabus.classID,Syllabus.theYear,Syllabus.termfrom Syllabusleft join CourseInfo onSyllabus.courseID=CourseInfo.courseIDleft join StuInfo onSyllabus.classID=StuInfo.classIDwhere StuInfo.stuID=@stuID--学生个人成绩单create view StuReportasselectStuInfo.stuID,erName,StuInfo.classID,CourseInfo.courseID,CourseInfo.courseName,Co urseInfo.credits,Report.grade,Syllabus.theYear,Syllabus.termfrom Reportleft join StuInfo onerID=StuInfo.stuIDleft join CourseInfo onReport.courseID=CourseInfo.courseIDleft join Syllabus onSyllabus.courseID=Report.courseID--单科成绩排名create proc ReportByOrder@courseID bigint,@classID bigintasselectStuInfo.stuID,erName,CourseInfo.courseID,CourseInfo.courseName,CourseInfo.credits ,Report.gradefrom Reportleft join StuInfo onStuInfo.stuID=erIDleft join CourseInfo onCourseInfo.courseID=Report.courseIDwhere CourseInfo.courseID=@courseID and StuInfo.classID=@classIDorder by grade desc--班级排名create proc ClassReportOrder@classID bigintasselect StuInfo.stuID,erName,SUM(grade)as总分from StuInfoleft join Report onStuInfo.stuID=erIDwhere StuInfo.classID=@classIDgroup by StuInfo.stuID,erNameorder by sum(grade)desc,StuInfo.stuID。
一、创建学生成绩管理数据库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课程表.课程号=成绩表.课程号。
哈尔滨理工大学软件学院课程设计报告课程:数据库课程设计题目:学生成绩信息管理的数据库设计班级:软件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范式教授:课程号,教师编号。
以下题目基于学生成绩管理系统数据库,各关系表描述如下,要求用sql语句完成下列题好的,我会根据学生成绩管理系统数据库的描述,为您提供相应的SQL语句。
首先,让我们假设有以下的关系表:1. 学生表(Students):学生ID (StudentID)学生姓名 (StudentName)学生年龄 (StudentAge)2. 课程表(Courses):课程ID (CourseID)课程名称 (CourseName)3. 成绩表(Grades):学生ID (StudentID)课程ID (CourseID)成绩 (Grade)基于上述关系表,以下是您要求的SQL语句:1. 查询所有学生的姓名和年龄:```sqlSELECT StudentName, StudentAge FROM Students; ```2. 查询所有课程的名称:```sqlSELECT CourseName FROM Courses;```3. 查询每个学生所修的所有课程及成绩:```sqlSELECT , ,FROM StudentsJOIN Grades ON =JOIN Courses ON = ;```4. 查询所有课程的学生平均成绩:```sqlSELECT CourseName, AVG(Grade) as AverageGrade FROM CoursesJOIN Grades ON =GROUP BY CourseName;```5. 查询年龄大于20岁的学生姓名和年龄:```sqlSELECT StudentName, StudentAgeFROM Students WHERE StudentAge > 20; ```。
建表:主键:外键:约束:create table 学生基本信息( 学号varcher(20) not null primary key clustered, 姓名varcher(20) not null, 性别tinyint(1) null, 专业varcher(20) null, 班级varcher(20) null, 电话varcher(20) not null)create table 教师基本信息( 工号varcher(20) not null primary key clustered, 姓名varcher(20) not null, 性别tinyint(1) null, 年龄tinyint(1) null, 学院名称varcher(20) null, 电话varcher(20) not null,constraint uk_教师工号unique(工号))create table 课程基本信息( 课程号varcher(20) not null primary key clustered, 课程名称varcher(20) not null, 学分tinyint(1) null, 学院名称varcher(20) not null,教师工号varcher(20) not null references 教师基本信息(工号))create table 选课信息( 课程号varcher(20) not null primary key clustered references 课程基本信息(课程号), 课程名称varcher(20) not null,教师工号varcher(20) not null, 学号varcher(20) not null references 学生基本信息(学号),成绩char(5) not null),constraint fk_选课primary key(学号,课程号), constraint chk_成绩check (成绩>=0 and 成绩<=100))规则:create rule 打分规则_ruleas @成绩between 1 and 100填表:打开表返回所有行操作视图:use 学生成绩管理create view 学生成绩as select 学生基本信息.姓名,选课信息.成绩,课程基本信息.课程名称,课程基本信息.学院名称,教师基本信息.姓名,教师基本信息.电话from学生基本信息cross join课程基本信息cross join 教师基本信息cross join选课信息where(课程基本信息.课程名称=’网络数据库’)。
成绩管理系统sql课程设计一、课程目标知识目标:1. 理解SQL语言在成绩管理系统中的应用和重要性。
2. 掌握SQL语言的基本语法和常用命令,如SELECT、INSERT、UPDATE、DELETE等。
3. 学会使用SQL语句进行成绩管理系统的数据查询、添加、修改和删除操作。
技能目标:1. 能够独立编写简单的SQL查询语句,实现对学生成绩的检索和统计。
2. 能够运用SQL语句解决实际问题,如按条件筛选成绩、排序和分组显示数据。
3. 能够通过实际操作,熟练使用SQL语言对成绩管理系统进行数据维护和处理。
情感态度价值观目标:1. 培养学生对数据库管理和SQL语言的兴趣,激发学习热情。
2. 培养学生的团队协作意识,使其在学习过程中主动与他人交流、分享经验。
3. 培养学生严谨、细致的学习态度,使其在编写SQL语句时注重语法规范和逻辑性。
课程性质:本课程为实践性较强的课程,以成绩管理系统为背景,结合实际案例进行教学。
学生特点:学生具备一定的计算机操作基础,了解数据库的基本概念,但对SQL语言的使用尚不熟悉。
教学要求:教师需结合实际案例,引导学生通过动手实践,掌握SQL语言在成绩管理系统中的应用。
在教学过程中,注重培养学生的实际操作能力和解决问题的能力,使学生在实践中掌握知识,提高技能。
同时,关注学生的情感态度价值观的培养,激发学生的学习兴趣,提高学习积极性。
通过分解课程目标为具体的学习成果,为后续的教学设计和评估提供明确方向。
二、教学内容1. SQL语言基础- 数据库基础知识回顾- SQL语句的基本语法和结构- 常用SQL命令的功能和使用方法2. 成绩管理系统的数据操作- 数据查询:SELECT语句的使用,包括条件查询、排序、分组等- 数据添加:INSERT语句的使用,向成绩表中添加数据- 数据修改:UPDATE语句的使用,修改成绩表中的数据- 数据删除:DELETE语句的使用,删除成绩表中的数据3. 实践操作案例- 设计成绩管理系统的数据库表结构- 实现对学生成绩的查询、添加、修改和删除操作- 综合应用SQL语句解决实际问题,如统计成绩、分析成绩分布等4. 教学内容安排与进度- 第一周:SQL语言基础,数据库知识回顾,学习SELECT语句- 第二周:数据添加、修改和删除操作,学习INSERT、UPDATE和DELETE 语句- 第三周:实践操作案例,综合运用SQL语句进行成绩管理- 第四周:课程总结,复习巩固所学内容教材章节关联:- 《数据库原理与应用》第章节:数据库的基本操作- 《SQL语言入门与应用》第章节:SQL语句的语法和使用方法教学内容依据课程目标进行选择和组织,确保科学性和系统性。