SQL练习实战:查询与统计实例

5星 · 超过95%的资源 需积分: 9 2 下载量 20 浏览量 更新于2024-09-12 收藏 65KB DOC 举报
本文档提供了一系列针对SQL Server 2005和2008的查询语句练习,旨在帮助SQL学习者提升实践能力。以下是各个练习的具体知识点: 1. **比较不同课程成绩**:此练习让学生查询学号(S#)为"001"课程成绩高于"002"课程成绩的所有学生。通过子查询分别获取两个课程的成绩,并使用`JOIN`和`WHERE`子句找出满足条件的学生。这涉及了SQL中的`JOIN`操作和条件筛选。 2. **平均成绩筛选**:此部分要求找出平均成绩大于60分的学生学号及其平均成绩。通过`GROUP BY`和`HAVING`子句,对`SC`表按学号分组并计算平均成绩,仅保留平均成绩大于60的记录。 3. **统计学生成绩信息**:该查询返回每个学生的学号(S#)、姓名(Sname)、选课数量(count(SC.C#))以及总成绩(sum(score))。使用`LEFT JOIN`和`GROUP BY`来组合学生表和成绩表,以便获取详细成绩数据。 4. **查询特定教师数量**:通过`DISTINCT`关键字,计算姓“李”的教师的数量,使用`LIKE`运算符匹配以“李”开头的教师姓名。 5. **查找未修某老师课程的学生**:此练习是反向筛选,找出没有修过叶平(Teacher.Tname='叶平')老师课程的学生的学号和姓名。通过`NOT IN`子句排除相关联表中对应记录的学号。 6. **同时修读多门课程**:查询既修读了"001"又修读了"002"课程的学生学号和姓名,使用`EXISTS`子句验证是否存在另一条记录满足同时修读两个课程的条件。 7. **查询特定老师所有课程的学生**:最后的查询目标是获取学过“叶平”老师所有课程的学生的学号和姓名。这需要结合多个表(`Student`, `SC`, 和 `Teacher`),通过`JOIN`操作确保关联正确。 这些练习涵盖了SQL的基础和进阶概念,包括关联查询、聚合函数、子查询、条件过滤以及分组和聚合数据。通过这些实践,学习者可以巩固对SQL查询语句的理解,提高数据处理和分析能力。