SQL查询实战:成绩对比与学生信息汇总

4星 · 超过85%的资源 需积分: 4 14 下载量 186 浏览量 更新于2024-09-17 2 收藏 72KB DOC 举报
本文档提供了一系列SQL查询语句练习,旨在帮助学习者提升对SQL语言的理解和实践能力。以下是每个练习的问题和对应的解决方案: 1. 查询“001”课程比“002”课程成绩高的所有学生的学号: 这个查询通过子查询获取“001”和“002”课程的成绩,然后比较两个查询结果中对应学生的分数,只返回“001”课程分数大于“002”课程分数的学生学号。这样可以筛选出那些在指定课程中有较高表现的学生。 2. 查询平均成绩大于60分的同学的学号和平均成绩: 使用GROUP BY将学生按学号分组,然后计算每个学生的平均成绩,HAVING子句用来筛选出平均成绩大于60分的学生,结果包括学号和平均成绩。 3. 查询所有同学的学号、姓名、选课数、总成绩: 这是一个左外连接查询,将学生表与成绩表联接,根据学号匹配,然后分别统计每个学生的课程数量(使用COUNT函数)和总成绩(使用SUM函数),结果包括学号、姓名以及这些统计数据。 4. 查询姓“李”的老师的个数: 通过DISTINCT关键字去除重复的教师姓名,使用LIKE操作符查找以“李”开头的姓名,统计这样的教师数量。 5. 查询没学过“叶平”老师课的同学的学号和姓名: 这个查询首先找出叶平老师的所有课程,然后从学生表中排除这些课程的授课记录,只保留没有选修过叶平课程的学生信息。 6. 查询学过“001”并且也学过编号“002”课程的同学的学号和姓名: 使用EXISTS子句检查一个学生是否同时选修了“001”和“002”课程,返回符合条件的学生学号和姓名。 7. 查询学过“叶平”老师所教的所有课的同学的学号、姓名: 此查询同样涉及多表联接,找到叶平老师的所有课程,再与学生表联接,找出这些课程的选修学生及其信息。 这些SQL查询涵盖了基本的联接(JOIN)、聚合函数(AVG、COUNT、SUM)、条件筛选(WHERE、HAVING)以及子查询等重要知识点,通过实际操作可以加深对SQL基础结构和功能的理解。