学生成绩管理系统数据库1修改.docx

上传人:b****5 文档编号:8412020 上传时间:2023-01-31 格式:DOCX 页数:11 大小:181.08KB
下载 相关 举报
学生成绩管理系统数据库1修改.docx_第1页
第1页 / 共11页
学生成绩管理系统数据库1修改.docx_第2页
第2页 / 共11页
学生成绩管理系统数据库1修改.docx_第3页
第3页 / 共11页
学生成绩管理系统数据库1修改.docx_第4页
第4页 / 共11页
学生成绩管理系统数据库1修改.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

学生成绩管理系统数据库1修改.docx

《学生成绩管理系统数据库1修改.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统数据库1修改.docx(11页珍藏版)》请在冰豆网上搜索。

学生成绩管理系统数据库1修改.docx

学生成绩管理系统数据库1修改

 

使用了SQL2008软件

(1)实现了学生的选课管理、成绩管理

(2)实现学生、教师的信息管理

(3)实现学院的组织信息(部门、班级、专业)管理

(4)实现SQL查询功能。

没有改进,基本功能实现,

1需求分析

1.1建立一个数据库,然后在此数据库中数据表。

建立ssh数据库创建学生表和老师表课程表

1.2向表中添加记录。

向学生表和老师表中加入信息

1.3用一些查询语句来查看表中的特定记录。

查询学生表和老师表的信息

1.4向表中添加一些字段。

向teacher表中添加字段tel

1.5创建几个视图

查询某个班级的学生信息

查看每门课程的平均成绩

1.6创建几个存储过程

显示成绩表中的课程号在课程表中且所任教师性别为男、计算机系的成绩表

显示某学生的学号,姓名,所学课程号,课程名称和对应的成绩

在执行此存储过程时,如果没有给出参数(学生姓名),则输入全部的学生的学号,姓名,班级,任课教师编号及其姓名,所学课程名称和成绩,如果有,显示此学生的以上信息。

1.7创建触发器

在成绩表中建立一个触发器,当向表中添加记录时,此学生的成绩都乘以1.2

检查学生的邮箱地址是否相同。

1.8创建自定义函数

创建自定义函数,输出与指定的学生同班的学生个数,输出同一个班级中的学生信息

 

2数据库设计

2.1实体模型:

1N

NM

2.2ER图到关系图的转换

 

 

 

2.3数据字典

Student表:

sno

Char(8)

不允许为空

sname

Char(10)

不允许为空

Ssex

Char

(2)

不允许为空

sbirth

Datetime(8)

允许为空

class

Char(4)

不允许为空

type

Char(7)

允许为空

score表结构:

sno

Char(8)

不允许为空

cno

Char(5)

不允许为空

degree

Float(8)

不允许为空

Course表:

cno(主键)

Char(5)

不允许为空

cname

varchar(10)

不允许为空

tno

char(3)

不允许为空

Teacher表

tno

char(5)

不允许为空

tname

varchar(10)

不允许为空

depart

varchar(8)

不允许为空

Tsex

char

(2)

不允许为空

Tbirth

datetime,

允许为空

prof

char(6)

允许为空

3功能实现

3.1创建数据库:

createdatabasessh

on

(name=ssh,

filename='e:

\database\ssh.mdf’,

size=1)

logon

(name=ssh1,

filename='e:

\database\ssh1.ldf',

size=1)

3.2创建数据表

(1)student表

usessh

createtablestudent

(snochar(8)primarykey,

snamechar(10)notnull,

Ssexchar

(2)notnull,

Sbirthdatetime,

classchar(4)notnull

semailvarchar(20))

(2)score表

createtablescore

(snochar(8)notnull,

cnochar(4)notnull,

degreefloatnotnull)

(3)course表

createtablecourse

(cnochar(5)notnullprimarykey,

cnamevarchar(10)notnull,

tnochar(3)notnull)

(4)teacher表

createtableteacher

(tnochar(5)notnullprimarykey,

tnamevarchar(10)notnull,

departvarchar(8)notnull,

Tsexchar

(2)notnull,

Tbirthdatetime,

profchar(6))

4数据操作

4.1插入

(1)向学生表插入信息

insertintostudentvalues('101','生活','女','1983-09-18','11')

insertintostudentvalues('102','风尘','男','1984-01-01','11')

insertintostudentvalues('103','离开','男','1984-01-01','11')

insertintostudentvalues('104','流浪','女','1984-11-11','11')

insertintostudentvalues('105','生命','男','1984-12-05','13')

insertintostudentvalues('106','无悔','女','1984-11-01','13')

insertintostudentvalues('107','历史','女','1984-10-01','12')

insertintostudentvalues('108','风尘','男','1985-9-08','11')

insertintostudentvalues('109','活着','男','1985-12-12','12')

insertintostudentvalues('110','傻瓜','女','1985-08-28','12')

查看记录

Select*fromstudent

(2)向成绩表中添加

insertintoscorevalues('101','01',88)

insertintoscorevalues('101','02',85)

insertintoscorevalues('102','02',80)

insertintoscorevalues('101','03',88)

insertintoscorevalues('102','02',85)

insertintoscorevalues('102','03',80)

insertintoscorevalues('103','01',83)

insertintoscorevalues('103','02',85)

insertintoscorevalues('103','03',90)

insertintoscorevalues('104','01',60)

查看记录

Select*fromscore

(3)向教师表中添加数据

insertintocoursevalues('01','计算机','11')

insertintocoursevalues('02','网络管理','12')

insertintocoursevalues('03','专业英语','13')

insertintocoursevalues('04','软件工程','14')

查看记录

Select*fromcourse

(4)向课程表中添加数据

insertintoteachervalues('11','无意','计算机系','男','1973-4-5','教授')

insertintoteachervalues('12','生活','计算机系','女','1975-12-1','副教授')

insertintoteachervalues('13','没有','管理系','女','1975-3-3','副教授')

insertintoteachervalues('14','离开','英语系','男','1973-5-5','教授')

查看记录

Select*fromteacher

4.2查询

(1)查询成绩大于学号为101的学生的课程为02的成绩的所有列。

select*fromscorewheredegree>(selectdegreefromscorewheresno='101'andcno='02')

(2)查询课程号01大于课程号02的最大值、并以分数降序排序的成绩表中所有列

select*fromscoreswhereo='01'ands.degree>=(selectmax(degree)fromscoreywhereo='02')orderbydegreedesc

go

selectmax(degree)as"02max"fromscorewherecno='02'

(3)查询性别为男的学号,姓名,班级,课程号和成绩的学生

selectstudent.sno,student.sname,student.class,o,score.degreefromstudent,scorewherestudent.sno=score.snoandssex='男'

(4)查询成绩在60到80之间的所有列

select*fromscorewheredegreebetween60and80

(5)查询score表中至少有5名学生选修的并以0开头的课程的平均分

selectavg(degree)as"平均分",cnofromscorewherecnolike'0%'groupbycnohavingcount(*)>=5

4.3创建数据类型

创建一个email自定义数据类型

execsp_addtypeemail,'varchar(20)','null'

修改student表中的semail数据类型为email类型

altertablestudentaltercolumnsemailemail

4.4向表中添加字段

向student表添加type,semail,,b并且邮件地址有check约束

altertablestudentaddtypechar(7)

altertablestudentaddsemailvarchar(20)nullconstraintck_semcheck(semaillike'%@%')

altertableteacheraddtelvarchar(15)

4.5创建视图

(1)创建所有11班的学生信息的视图

createviewstudent11

as

select*fromstudentwhereclass='11'

查看视图中的记录

select*fromstudent11

(2)创建视图course_degree

其中的内容是选修计算机课程的学生信息,包括(sno,sname,cno,cname,degree),创建时加上withcheckoption

createviewcourse_degree(sno,sname,cno,cname,degree)

as

selectscore.sno,sname,o,cname,degreefromcourse,student,score

whereo=oandstudent.sno=score.snoandcname='计算机'

withcheckoption

查看视图中的记录

select*fromcourse_degree

(3)创建一个视图,其中的内容是成绩表中每门课程的

createviewaverage

as

selectavg(degree)as'平均分'fromscoregroupbycno

查看视图中的记录

select*fromaverage

(4)创建视图其中的内容是所有男教师和男学生的name,sex,birth

createviewman

as

selectsnameasname,ssexassex,sbirthasbirthfromstudentwheressex='男'

unionselecttname,tsex,tbirthfromteacherwheretsex='男'

查看视图中的记录

select*fromman

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1