有3个表S,C,SC
S(SNO,SNAME)代表(学号,姓名)
C(CNO,CNAME,CTEACHER)代表(课号,课名,教师)
SC(SNO,CNO,SCGRADE)代表(学号,课号成绩)
问题:
1,找出没选过“黎明”老师的所有学生姓名。
2,列出2门以上(含2门)不及格学生姓名及平均成绩。
3,即学过1号课程有学过2号课所有学生的姓名。
--1. 找出没选过“李”老师的所有学生姓名。
SELECT s.Sname FROM Student s WHERE s.SNO NOT IN
(SELECT sc.SNO FROM Stu_Cau sc LEFT JOIN Cause c ON sc.CNO = c.CNO
WHERE c.CTEACHAR = '李' )
--或
SELECT DISTINCT s.Sname FROM Student s JOIN Stu_Cau sc ON (s.SNO = sc.SNO)
JOIN Cause c ON (c.CNO = sc.CNO) WHERE c.CTEACHAR <> '李'
--2. 列出2门以上(含2门)不及格学生姓名及平均成绩。
SELECT t.av,s.SNAME FROM (
SELECT sc.SNO,AVG(sc.SCGRADE) AS av FROM Stu_Cau sc
WHERE sc.SNO IN
(SELECT SNO FROM Stu_Cau WHERE SCGRADE<60 GROUP BY SNO HAVING COUNT(SNO) >= 2)
GROUP BY sc.SNO ) AS t
LEFT JOIN Student s ON s.SNO = t.SNO
--3. 既学过1号课程又学过2号课所有学生的姓名。
SELECT s.SNAME FROM Student s WHERE s.SNO IN
(
SELECT a.SNO FROM Stu_Cau a CROSS JOIN Stu_Cau b
WHERE a.SNO = b.SNO AND a.CNO = 1 AND b.CNO = 2
)
简洁的
1.
select sname froms
join sc on (s.sno = sc.sno)
join c (c.cno = sc.cno)
where c.cteacher <> 'liming';
2.
select sname
where sno in (
select sno from sc where scgrade < 60 group by sno having count(*) >= 2);
3.
select sname
where sno in (
select sno from sc
where cno = 1 and sno in
(select sno fromsc where cno = 2)
);
分享到:
相关推荐
### 经典SQL面试题解析 #### 颇具挑战性的SQL面试题——删除冗余记录 **题目背景与分析** 在本题中,我们面对的是一个常见的问题:如何有效地处理数据库中的冗余数据。在实际应用中,由于各种原因(如数据导入...
经典SQL面试练习50多道题知识点总结 经典SQL面试练习50多道题(含答案)是SQL开发人员面试的必备知识之一,本文档总结了多种SQL面试题,涵盖了多表查询、删除冗余数据、查询符合条件的记录等多方面的知识点。下面对...
经典SQL面试题 本资源摘要信息涵盖了经典SQL面试题,涉及到Student、Course、Teacher和SC四个表的设计和操作。通过对这些表的设计和操作,可以测试候选人的SQL基础知识、数据模型设计能力和查询优化能力。 知识点1...
经典SQL面试题 这篇文章主要介绍了经典SQL面试题,涵盖了基本的SQL语句、数据表设计、数据查询、数据分析等方面的知识点。 数据表设计 在这篇文章中,我们可以看到四个数据表的设计:学生表(Student)、课程表...
经典sql面试题及答案,所有页面使用FoxitReader、PDF-XChangeViewer、SumatraPDF和Firefox测试都可以打开。本资源转载自网络,如有侵权,请联系上传者或csdn删除。
经典Sql面试题收集.doc
经典 SQL 面试题及答案 本文档提供了 10 道经典 SQL 面试题及答案,涵盖了查询、排序、分组、连接、子查询等多种 SQL 技术。通过这些题目,可以帮助读者熟悉 SQL 语言,提高数据库管理和开发能力。 一、查询“001...
经典SQL面试题 本资源提供了一组经典的SQL面试题,涵盖了多个领域,包括数据库设计、数据操作、查询优化等。该资源包括四个表:学生表、课程表、成绩表、教师表,每个表都有其特定的字段和属性。同时,提供了多个...
### 经典SQL面试知识点详解 #### 一、查询“01”课程比“02”课程成绩高的学生的信息及课程分数 为了找到在“01”课程中成绩高于“02”课程的学生,我们需要从成绩表(`SC`)中获取学生的编号,并通过连接学生表...
以下是一些基于"经典sql面试题目(另一个)---无私奉献了!"这一主题的关键知识点,这些知识点可能会出现在面试中,同时也是数据库和编程领域的重要基础。 1. **SQL语言基础**:SQL(Structured Query Language)是...
### 经典SQL面试题解析 #### 题目背景 在给定的文档中,提到了四个主要的关系型数据库表:学生表(Student)、课程表(Course)、成绩表(SC)以及教师表(Teacher)。这些表通过不同的字段相互关联,构成了一个小型的教育...
在SQL面试中,掌握基本的查询技巧和理解复杂的联接操作是至关重要的。以下是对给定的SQL面试题目的详细解答: 1. **找出选修过李明老师讲授课程的所有学生姓名** - 步骤:首先,我们需要找到与李明老师关联的课程...
根据给定的SQL题目及其答案,我们可以总结出一系列重要的SQL知识点和技巧,这些知识点对于学习SQL及准备面试都非常有帮助。...这些技能不仅对准备SQL面试非常有用,也是日常开发工作中不可或缺的能力。
从给定的文件信息中,我们可以提炼出一系列与SQL相关的知识点,这些知识点涵盖了SQL的基本操作、数据表的创建、查询优化、数据完整性以及事务处理等多个方面。以下是对这些知识点的详细解析: ### 1. 数据表的创建...
本套MySQL面试题,汇总了大量经典的MySQL程序员面试题以及答案,包含MySQL语言常见面试题、MySQL工程师高级面试题及一些大厂MySQL开发面试宝典,面试经验技巧等,应届生,实习生,企业工作者,都可参考学习!...