SQL 题目 学生选课系统

SQL 题目 学生选课系统,第1张

学生基本信息表的学号设为该关系的主码选课表的学号与课程号这一属性组设为该关系的主码课程表的课程号设为该关系的主码这三个关系最多只能符合第一范式(1NF),因为它们属性之间存在较多的函数依赖。懂得理论上的知识,剩下的 *** 作性的T-SQL都已经是很简单的了。这里就不说了。

我也觉得,这个不要用触发器,在程序中判断

当要插入选课时,先查询是否选修先行课程,若有即插入数据,没有即提示

如果用触发器的话,先要插入数据,然后触发 *** 作查询,无效的话还有回滚数据

*** 作步骤较多,浪费系统资源

不过如果一定要用触发器的话,把1L的if条件改成

if exists(

select * from stu_cno a inner join inserted b on a.sno=b.sno inner join 选课表 c on c.cno=b.cno

where a.cno=c.cpno

)

(1)查询各门课程的选修人数:

select 课程号,count(学号) as 选修人数 from 选课表

(2)查询“计算机应用基础”这门课的平均分:

select avg(分数) as 平均分 from 选课表,课程表

where 选课表.课程号=课程表.课程号 and 课程名=‘计算机应用基础’

(3)查询选修了“计算机应用基础”这门课的女生的姓名、课程名、成绩

select 姓名、课程名、成绩 from 学生基本信息表,课程表,选课表

where 学生基本信息表.学号=选课表.学号 and 选课表.课程号=课程表.课程号 and 性别='女' and 课程名=‘计算机应用基础’


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10042788.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存