教学管理”数据库中有学生表、课程表和选课表,如何创建数据库反应三张表之间的联系?

教学管理”数据库中有学生表、课程表和选课表,如何创建数据库反应三张表之间的联系?,第1张

关于反映这三张表中数据之间的联系,提供三方面信息以供参考:

1、表关系分析:学生表与课程表是多对多的关系,建立一张关联表也就是选课表来将学生表与程表产生关联。

2、数据库表分析:学生表包括学生相关信息,课程表包括课程相关信息,选课表放其他两张表的各一个字段(可以维护唯一性,比如说主键)。

3、实体分析:包含学生和课程两个实体,在每个实体中加入另外一个实体的集合。

select a.sno from sc as a,

(select cno from sc where sno=7) as b

where a.cno=b.cno

group by a.sno having count(*)=(select count(*) from sc where sno=7)

不用exists貌似比较麻烦

给你说一下

(select cno from sc where sno=7) as b是查出7号学生选的课程

关联查询是查出和7号学生选过有相同的人

最后group by ……那一堆表示,条数跟7号学生选课的条数一样的,也就是选了7号学生全部课程的人

1、SELECT 课程号, 课程名, 课程学分

FROM 课程 WHERE 课程号 IN(SELECT 课程号

FROM 选课

GROUP BY 课程号

HAVING COUNT(学生号) BETWEEN 2 AND 4 )

2、SELECT MAX(成绩) - MIN(成绩) AS 分数之差

FROM 选课

倘若要每门课程相差

SELECT 课程, MAX(成绩) - MIN(成绩) AS 分数之差

FROM 选课

GROUP BY 课程


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存