SQL查询实战:从基础到高级操作

需积分: 3 7 下载量 169 浏览量 更新于2025-01-07 收藏 30KB TXT 举报
"本资源提供了一系列SQL语句的示例,涵盖了从基本查询到复杂的联接操作,适合初学者学习和提升SQL技能。" 在SQL(结构化查询语言)中,我们可以执行各种操作来管理数据库,包括数据检索、更新、插入和删除。以下是标题和描述中提到的一些关键知识点: 1. **子查询**: 示例1和2中都使用了子查询。子查询是在主查询内部嵌套的查询,用于获取满足特定条件的数据。在示例1中,它用来找出001课程分数高于002课程分数的学生。在示例2中,子查询用于找到所有平均分超过60分的学生。 2. **聚合函数**: `AVG()` 函数在示例2中出现,用于计算平均值。这个函数在分组查询中尤其有用,可以对一组值求平均。在示例2中,它用于计算每个学生所有课程的平均分数。 3. **联接操作**: 示例3展示了`LEFT OUTER JOIN`操作,它返回所有左表(Student)的记录,即使在右表(SC)中没有匹配的记录。这用于统计每个学生选修的所有课程数量和总分。 4. **通配符查询**: 在示例4中,使用了`LIKE`关键字配合通配符`%`来查找名字中包含特定字符串(在这种情况下是空字符串)的教师数量。 5. **NOT IN 子句**: 示例5利用`NOT IN`子句找出未在特定课程(由教师'Ҷƽ'教授)中注册的学生。这有助于筛选出未参与特定活动的学生。 6. **EXISTS 子句**: 示例6使用`EXISTS`子句来检查学生是否同时选修了001和002两门课程。如果存在匹配,则`EXISTS`返回真,使得主查询能够筛选出这些学生。 7. **GROUP BY 和 HAVING**: 示例3中,`GROUP BY`用于将数据按照一个或多个列进行分组,而`HAVING`则在分组后过滤结果,类似于`WHERE`但作用于分组后的结果。在这里,它用于找出每个学生的所有课程和总分。 通过学习这些示例,你可以掌握SQL的基本概念,如子查询、聚合函数、联接、通配符查询、不等值连接、存在子句以及分组和条件过滤,从而提高在实际数据库操作中的能力。