根据给定的文件信息,我们将逐一解析每个SQL查询语句,并深入探讨其背后的逻辑与应用场景。 查询“001”课程比“002”课程成绩高的所有学生的学号,此查询找出那些在“001”课程上的得分高于“002”课程的学生的学号。通过子查询的方式实现对两个不同课程成绩的比较。 子查询首先分别查询出“001”和“002”课程的成绩,外层查询通过WHERE子句比较这两个成绩,并确保它们来自同一个学生(通过学号匹配)。 查询平均成绩大于60分的同学的学号和平均成绩,此查询关注的是找出所有学生的学号以及他们的平均成绩,并过滤出那些平均成绩超过60分的学生。 使用聚合函数AVG()来计算每个学生的平均成绩,GROUP BY按照学号进行分组,确保每个学生的成绩被正确计算,HAVING筛选出满足条件(平均成绩大于60分)的分组。 查询所有同学的学号、姓名、选课数、总成绩,目标是获取每个学生的学号、姓名、他们选择的课程数量以及这些课程的总成绩。 使用LEFT OUTER JOIN确保所有学生的信息都被包含进来,即使有些学生没有成绩记录,COUNT()和SUM()分别用于统计每个学生选择的课程数量和总成绩,GROUP BY按学号和姓名分组,以便为每个学生计算选课数和总成绩。 查询姓“李”的老师的个数,这是一个简单的查询,用于统计所有姓“李”的老师的数量。 使用LIKE通配符%来匹配所有以“李”开头的名字,DISTINCT确保每个不同的老师只被计数一次。 查询没学过“叶平”老师课的同学的学号、姓名,此查询找出那些从未上过“叶平”老师课程的学生的学号和姓名。 使用NOT IN排除那些上过“叶平”老师课程的学生学号,INNER JOIN连接SC和Course表,以及Teacher表,以获取相关的课程和老师信息。 查询学过“001”并且也学过编号“002”课程的同学的学号、姓名,该查询用于找到同时修读了“001”和“002”两门课程的学生的学号和姓名,使用EXISTS用于检查是否存在符合条件的记录(即存在一个学