SQL经典查询实例解析

需积分: 0 2 下载量 183 浏览量 更新于2024-07-30 收藏 143KB DOC 举报
"这篇资料主要涉及SQL语言的学习,包含了多个经典练习题目,是学习SQL的基础和进阶训练。" 在SQL语句中,查询和聚合函数是核心概念,以下是对给定内容中四个问题的详细解释: 1. 第一个问题旨在找出在"001"课程中的成绩高于"002"课程的所有学生学号。这里采用了子查询来分别获取两门课程的成绩,然后通过主查询进行比较。子查询`a`和`b`分别代表"001"和"002"课程的成绩,主查询通过`a.score > b.score AND a.s# = b.s#`条件筛选出成绩更高的学生。这展示了如何使用子查询进行多条件比较。 2. 第二个问题要求查询平均成绩超过60分的学生的学号和平均成绩。这里运用了`GROUP BY`语句对每个学生的所有成绩进行平均值计算,`HAVING`子句则在聚合后过滤结果,只保留平均成绩大于60分的学生。这体现了`GROUP BY`和`HAVING`在统计分析中的应用。 3. 第三个问题需要展示每个学生的信息,包括学号、姓名、选课数和总成绩。此查询使用了左连接(`LEFT OUTER JOIN`),确保即使学生没有成绩记录,也能显示其基本信息。通过`COUNT(SC.C#)`计算选课数,`SUM(score)`求总成绩,`GROUP BY`按学生学号和姓名分组。这展示了如何结合使用连接、聚合函数和分组操作。 4. 第四个问题要求找出姓“李”的老师数量。`LIKE`操作符用于模糊匹配,`'李%'`表示以“李”开头的任何字符串。`DISTINCT`关键字确保不重复计数。这说明了如何利用`LIKE`进行模式匹配,以及如何用`DISTINCT`去除重复数据。 这些例子涵盖了SQL的基本查询、连接、子查询、聚合函数和模糊匹配等关键概念,对于理解SQL语言的功能和使用具有重要意义。通过类似这样的练习,可以提升SQL查询能力和数据库管理技能。