2-6《学生管理系统》成绩管理模块

这篇博客详细介绍了如何在SQL中创建数据库、数据表,设置主键和外键约束,插入测试数据,并进行了查询操作。此外,还展示了创建视图、删除数据以及定义存储过程来统计课程成绩的方法。内容涵盖了数据库管理的基础知识和实际应用。
摘要由CSDN通过智能技术生成
Create Database Student
on Primary
(name='Student',
filename='D:\boss\Student.mdf')
log on
(name='Student_log',
filename='D:\boss\Student_log.ldf')

use Student
go

Create table T_student_info
(
student_no CHAR(6)  not Null,
student_name  char(20) not Null,
sex char(2) not Null,
birth datetime not Null,
enter_date int not Null,
adress varchar(50) not Null,
)


Create table T_course_info
(
course_no  char(8)  not Null,
course_name char(50) not Null,
credit int not Null,
classhour int not Null,

)

Create table T_student_scores
(
course_no  char(8) not Null,
student_no char(6) not Null,
ordinary_scores decimal not Null,
end_scores decimal not Null,
total_scores decimal not Null,
)
--创建数据表间的关系及约束--
alter table T_student_info
add constraint PK_student_no primary key(student_no)

alter table T_course_info
add constraint PK_T_course_info primary key(course_no)

alter table T_student_scores
add constraint PK_T_student_scores primary key(student_no,course_no)

alter table T_student_scores
add constraint FK_T_student_scores_course_no foreign key(course_no ) references T_course_info(course_no )

alter table T_student_scores
add constraint FK_T_student_scores_student_no foreign key(student_no ) references T_student_info(student_no )

--①向每个表插入 3 条测试数据(样本数据包含下面题目中使用的数据);--
insert into T_student_info values('10012','埃克','男','03/23/1991','2008','湖南长沙劳动东路 168 号')
insert into T_course_info values('101','计算机','10','250')
insert into T_student_scores values('101','10012','90','91','98')

--查询出出生年份在 1988 年-1995 年的所有学生信息;--
select *from [dbo].[T_student_info] where [birth] between '1988' and '1995'

--创建视图查询选修了“计算机”的学生姓名、平时成绩、期末成绩、总评成绩;--
go
create view 学生
as
select [course_name]课程名,[student_name]学生姓名,[ordinary_scores]平时成绩,[end_scores]期末成绩,[total_scores]总评成绩 from [dbo].[T_student_scores],
[dbo].[T_student_info],[dbo].[T_course_info]where [dbo].[T_student_info].student_no=
[dbo].[T_student_scores].student_no and [dbo].[T_course_info].course_no=[dbo].[T_student_scores].course_no 
and [course_name]='计算机'
go
--删除学号为“10012”的学生的所有成绩;--
delete from [dbo].[T_student_scores] where [student_no]='10012'

--创建存储过程,统计每门课程的选课人数、最高分、平均分。--
go
CREATE PROC 统计每门课程
(
@course_name char(50),
@ordinary_scores decimal ,
@end_scores decimal,
@total_scores decimal
)
as
select [course_name]课程,count(*)选课人数,max(total_scores)最高分,avg(total_scores)平均分 from [dbo].[T_course_info],[dbo].[T_student_scores]
group by [course_name]
go

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值