SQL查询技巧:学生、课程与教师数据操作

需积分: 10 3 下载量 77 浏览量 更新于2024-09-18 收藏 57KB DOC 举报
"这篇文档包含了50个常用的SQL语句示例,主要涉及对学生表(Student)、课程表(Course)、成绩表(SC)和教师表(Teacher)这四个数据库表的操作。这些语句用于查询和分析学生、课程、成绩以及教师的相关数据。" 在SQL(Structured Query Language)中,这些语句是数据库管理和分析的基础。以下是根据提供的部分内容解释的几个关键SQL知识点: 1. **子查询**:问题1中使用了子查询来比较'001'课程和'002'课程的成绩。子查询是在主查询内部执行的查询,用于获取数据集供外部查询使用。 2. **聚合函数**:问题2使用了`AVG()`函数计算平均成绩,并使用`GROUP BY`与`HAVING`结合筛选出平均成绩大于60分的学生。`GROUP BY`用于按学生学号分组,`HAVING`则在分组后进行条件过滤。 3. **连接查询**:问题3通过左外连接(`LEFT OUTER JOIN`)将学生表和成绩表关联,展示了每个学生的信息,包括选课数和总成绩。左外连接会返回所有左表(学生表)的记录,即使在右表(成绩表)中没有匹配项。 4. **LIKE操作符与通配符**:问题4利用`LIKE`操作符和通配符`%`来查询姓“李”的老师数量,`LIKE '李%'`表示匹配以“李”开头的名字。 5. **NOT IN子句**:问题5使用`NOT IN`子句找出未上过“叶平”老师课程的学生。这个子句排除了在子查询结果中的学号。 6. **EXISTS子句**:问题6借助`EXISTS`子句检查学生是否同时学过'001'和'002'两门课程。`EXISTS`子句只要子查询返回任何行,就会返回真,因此能找出满足条件的学生。 7. **多表连接**:问题7的查询旨在找出学过“叶平”老师所有课程的学生。这需要对多个表进行连接,可能涉及到复杂的连接操作和嵌套查询。 这些SQL语句涵盖了基础的查询、连接、聚合、过滤和子查询等概念,是数据库管理中常见的操作。熟练掌握这些语句对于数据库的日常管理和数据分析至关重要。在实际应用中,可能需要根据具体需求进行调整和优化。