SQL练习:学生、课程、学生选课关系表查询

本文提供了基于学生、课程、学生选课关系表的SQL查询练习,涵盖了各种查询场景,例如查询特定学生成绩、筛选特定年龄学生、查找选修特定课程学生等。

假设数据库中存在以下三个表:

  • 学生表: 包含学生学号、学生姓名、年龄等信息。
  • 课程表: 包含课程编号、课程名称等信息。
  • 学生选课表: 包含学生学号、课程编号、成绩等信息。

以下是一些常见的SQL查询练习,以及相应的SQL语句:

  1. 查询'李四'同学选修课的分数:
SELECT score 
FROM 学生选课 
WHERE 学生姓名 = '李四';
  1. 查询年龄大于20岁的学生的学号和姓名:
SELECT 学生学号, 学生姓名 
FROM 学生 
WHERE 年龄 > 20;
  1. 查询选修了'数据结构'课程的学生:
SELECT 学生学号, 学生姓名 
FROM 学生选课 
WHERE 课程名称 = '数据结构';
  1. 查询'张三'同学没有选修的课程:
SELECT 课程名称 
FROM 课程 
WHERE 课程编号 NOT IN (SELECT 课程编号 FROM 学生选课 WHERE 学生姓名 = '张三');
  1. 查询选修了全部课程的学生学号:
SELECT 学生学号 
FROM 学生 
WHERE 学生学号 IN (SELECT 学生学号 FROM 学生选课 GROUP BY 学生学号 HAVING COUNT(课程编号) = (SELECT COUNT(*) FROM 课程));
  1. 查询至少选修了2门课程的学生学号:
SELECT 学生学号 
FROM 学生选课 
GROUP BY 学生学号 
HAVING COUNT(课程编号) >= 2;
  1. 查询同时选修了'03'、'04'号课程的学生:
SELECT 学生学号 
FROM 学生选课 
WHERE 课程编号 IN ('03', '04') 
GROUP BY 学生学号 
HAVING COUNT(DISTINCT 课程编号) = 2;

注意:

  • 以上查询语句仅供参考,具体语法可能因数据库类型而有所不同。
  • 可以根据实际需求修改查询条件和输出字段。
  • 建议在实际应用中使用参数化查询,以提高安全性。
SQL练习:学生、课程、学生选课关系表查询

原文地址: http://www.cveoy.top/t/topic/o9L2 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录