鱼C论坛

 找回密码
 立即注册
查看: 92|回复: 1

数据库sql查询语句

[复制链接]
发表于 2024-10-31 16:36:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

6、查询王小虎同学所选课程的课程号、课程名和成绩。
7、查询王小虎同学所选课程的平均成绩。

8、查询至少选修了两门课程的学生的学号。
9、查询每个学生所选课程的平均成绩,只列出平均成绩在80分以上的学号和平均成绩,结果按平均成绩降序排列,平均成绩相同的按学号升序排列。

10、查询各院系男女生人数,列出院系、性别和人数。

11、查询至少选修了3门课,且平均成绩在80以上、没有不及格课程的学生,列出学号、姓名。

12、查询选过课、但没有选修选课人数在5以上的课程的学生,列出学号、姓名、所选修课程的门数。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-10-31 16:42:50 | 显示全部楼层
为了帮助您编写这些SQL查询语句,我将逐一解释每个问题的查询逻辑。

6. **查询王小虎同学所选课程的课程号、课程名和成绩。**
SELECT c.课程号, c.课程名, sc.成绩
FROM 学生 s
JOIN 选课 sc ON s.学号 = sc.学号
JOIN 课程 c ON sc.课程号 = c.课程号
WHERE s.姓名 = '王小虎';

7. **查询王小虎同学所选课程的平均成绩。**
SELECT AVG(sc.成绩) AS 平均成绩
FROM 学生 s
JOIN 选课 sc ON s.学号 = sc.学号
WHERE s.姓名 = '王小虎';

8. **查询至少选修了两门课程的学生的学号。**
SELECT sc.学号
FROM 选课 sc
GROUP BY sc.学号
HAVING COUNT(sc.课程号) >= 2;

9. **查询每个学生所选课程的平均成绩,只列出平均成绩在80分以上的学号和平均成绩,结果按平均成绩降序排列,平均成绩相同的按学号升序排列。**
SELECT sc.学号, AVG(sc.成绩) AS 平均成绩
FROM 选课 sc
GROUP BY sc.学号
HAVING AVG(sc.成绩) > 80
ORDER BY 平均成绩 DESC, sc.学号 ASC;

10. **查询各院系男女生人数,列出院系、性别和人数。**
SELECT s.院系, s.性别, COUNT(*) AS 人数
FROM 学生 s
GROUP BY s.院系, s.性别;

11. **查询至少选修了3门课,且平均成绩在80以上、没有不及格课程的学生,列出学号、姓名。**
SELECT s.学号, s.姓名
FROM 学生 s
JOIN 选课 sc ON s.学号 = sc.学号
GROUP BY s.学号, s.姓名
HAVING COUNT(sc.课程号) >= 3
   AND AVG(sc.成绩) > 80
   AND MIN(sc.成绩) >= 60;

12. **查询选过课、但没有选修选课人数在5以上的课程的学生,列出学号、姓名、所选修课程的门数。**
SELECT s.学号, s.姓名, COUNT(sc.课程号) AS 选修课程数
FROM 学生 s
JOIN 选课 sc ON s.学号 = sc.学号
WHERE sc.课程号 NOT IN (
    SELECT sc.课程号
    FROM 选课 sc
    GROUP BY sc.课程号
    HAVING COUNT(sc.学号) > 5
)
GROUP BY s.学号, s.姓名;

这些查询假设数据库中有三个表:`学生`、`选课`和`课程`,并且表结构符合常见的设计。请根据实际的数据库结构进行调整。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-21 21:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表