1、学生成绩管理系统数据库1修改使用了SQL2008软件(1)实现了学生的选课管理、成绩管理(2)实现学生、教师的信息管理(3)实现学院的组织信息(部门、班级、专业)管理(4)实现SQL查询功能。没有改进,基本功能实现,1 需求分析1.1 建立一个数据库,然后在此数据库中数据表。建立ssh数据库创建学生表和老师表课程表1.2 向表中添加记录。向学生表和老师表中加入信息1.3 用一些查询语句来查看表中的特定记录。查询学生表和老师表的信息1.4 向表中添加一些字段。向teacher表中添加字段 tel1.5 创建几个视图查询某个班级的学生信息查看每门课程的平均成绩1.6 创建几个存储过程显示成绩表中的
2、课程号在课程表中且所任教师性别为男、计算机系的成绩表显示某学生的学号,姓名,所学课程号,课程名称和对应的成绩在执行此存储过程时,如果没有给出参数(学生姓名),则输入全部的学生的学号,姓名,班级,任课教师编号及其姓名,所学课程名称和成绩,如果有,显示此学生的以上信息。1.7 创建触发器在成绩表中建立一个触发器,当向表中添加记录时,此学生的成绩都乘以1.2检查学生的邮箱地址是否相同。 1.8 创建自定义函数创建自定义函数,输出与指定的学生同班的学生个数,输出同一个班级中的学生信息2 数据库设计2.1 实体模型: 1 N N M2.2 ER图到关系图的转换 2.3 数据字典Student表:snoC
3、har(8)不允许为空snameChar(10)不允许为空SsexChar(2)不允许为空sbirthDatetime(8)允许为空classChar(4)不允许为空typeChar(7)允许为空score表结构:snoChar(8)不允许为空cnoChar(5)不允许为空degreeFloat(8)不允许为空Course表: cno(主键)Char(5)不允许为空cnamevarchar(10)不允许为空tnochar(3)不允许为空Teacher表tnochar(5)不允许为空tnamevarchar(10)不允许为空departvarchar(8)不允许为空Tsexchar(2)不允许为
4、空Tbirthdatetime ,允许为空profchar(6)允许为空3 功能实现3.1 创建数据库: create database sshon( name=ssh, filename=e:databasessh.mdf, size=1)log on( name=ssh1, filename=e:databasessh1.ldf, size=1)3.2创建数据表(1) student表use sshcreate table student( sno char(8) primary key,sname char(10) not null,Ssex char(2) not null, Sbir
5、th datetime,class char(4) not null semail varchar(20)(2) score表create table score(sno char(8) not null,cno char(4) not null, degree float not null)(3) course表create table course(cno char(5) not null primary key,cname varchar(10) not null, tno char(3) not null )(4) teacher表 create table teacher(tno c
6、har(5) not null primary key, tname varchar(10) not null, depart varchar(8) not null, Tsex char(2) not null, Tbirth datetime , prof char(6) )4 数据操作4.1 插入(1)向学生表插入信息insert into student values(101,生活,女,1983-09-18,11)insert into student values(102,风尘,男,1984-01-01,11)insert into student values(103,离开,男,1
7、984-01-01,11)insert into student values(104,流浪,女,1984-11-11,11)insert into student values(105,生命,男,1984-12-05,13)insert into student values(106,无悔,女,1984-11-01,13)insert into student values(107,历史,女,1984-10-01,12)insert into student values(108,风尘,男,1985-9-08,11)insert into student values(109,活着,男,19
8、85-12-12,12)insert into student values(110,傻瓜,女,1985-08-28,12) 查看记录 Select * from student(2)向成绩表中添加 insert into score values(101,01,88)insert into score values(101,02,85)insert into score values(102,02,80)insert into score values(101,03,88)insert into score values(102,02,85)insert into score values(
9、102,03,80)insert into score values(103,01,83)insert into score values(103,02,85)insert into score values(103,03,90)insert into score values(104,01,60)查看记录 Select * from score(3)向教师表中添加数据insert into course values(01,计算机,11)insert into course values(02,网络管理,12)insert into course values(03,专业英语,13)inse
10、rt into course values(04,软件工程,14)查看记录 Select * from course(4)向课程表中添加数据insert into teacher values(11,无意,计算机系,男,1973-4-5,教授) insert into teacher values(12,生活,计算机系,女,1975-12-1,副教授) insert into teacher values(13,没有,管理系,女,1975-3-3,副教授) insert into teacher values(14,离开,英语系,男,1973-5-5,教授)查看记录 Select * from
11、 teacher 4.2查询(1) 查询成绩大于学号为101的学生的课程为02的成绩的所有列。select * from score where degree(select degree from score where sno=101 and cno=02)(2) 查询课程号01大于课程号02的最大值、并以分数降序排序的成绩表中所有列select * from score s where o=01 and s.degree=(select max(degree) from score y where o=02 ) order by degree descgo select max(degre
12、e) as 02max from score where cno=02 (3) 查询性别为男的学号,姓名,班级,课程号和成绩的学生select student.sno,student.sname,student.class,o,score.degree from student,score where student.sno=score.sno and ssex=男(4) 查询成绩在60到80之间的所有列select * from score where degree between 60 and 80(5) 查询score表中至少有5名学生选修的并以0开头的课程的平均分select avg(
13、degree) as 平均分,cno from score where cno like 0% group by cno having count(*)=54.3 创建数据类型创建一个email自定义数据类型 exec sp_addtype email, varchar(20) , null修改student表中的semail数据类型为email类型alter table student alter column semail email4.4 向表中添加字段 向student表添加type,semail,b并且邮件地址有check约束alter table student add type
14、char(7)alter table student add semail varchar(20) null constraint ck_sem check (semail like %)alter table teacher add tel varchar(15)4.5 创建视图(1) 创建所有11班的学生信息的视图create view student11as select * from student where class=11查看视图中的记录select * from student11(2) 创建视图course_degree其中的内容是选修计算机课程的学生信息,包括(sno,sn
15、ame,cno,cname,degree),创建时加上with check optioncreate view course_degree(sno,sname,cno,cname,degree)as select score.sno,sname,o,cname,degree from course ,student, score where o=o and student.sno=score.sno and cname=计算机with check option查看视图中的记录select * from course_degree(3) 创建一个视图,其中的内容是成绩表中每门课程的create
16、view averageas select avg(degree) as 平均分 from score group by cno查看视图中的记录select * from average (4) 创建视图其中的内容是所有男教师和男学生的name,sex,birthcreate view man as select sname as name,ssex as sex,sbirth as birth from student where ssex=男union select tname,tsex,tbirth from teacher where tsex=男查看视图中的记录select * from man
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1