SQL练习题解析:关系代数与SQL查询解答
需积分: 3 152 浏览量
更新于2024-07-31
收藏 265KB DOC 举报
"这些SQL练习题提供了关系代数和SQL语言的实践应用,旨在帮助提升SQL查询能力。题目涵盖了从基础的联接操作到复杂的聚合函数和子查询的使用。"
在SQL练习题中,我们可以看到一系列涉及关系数据库查询的问题。以下是这些问题的详细解释和解答:
1. 查询学号为S3学生所学课程的课程名与任课教师名。
使用关系代数:`π CNAME, TEACHER (σ SNO='S3' (S ⨝ SC ⨝ C))`
使用SQL:`SELECT C.CNAME, C.TEACHER FROM S JOIN SC ON S.SNO = SC.SNO JOIN C ON SC.CNO = C.CNO WHERE S.SNO = 'S3';`
2. 查询至少选修LIU老师所教课程中一门课的女生姓名。
使用关系代数:`π SNAME (σ SEX='F' ∧ SNO IN (π SNO (σ TEACHER='LIU' (C))) (S)`
使用SQL:`SELECT S.SNAME FROM S WHERE S.SEX = 'F' AND S.SNO IN (SELECT SC.SNO FROM SC JOIN C ON SC.CNO = C.CNO WHERE C.TEACHER = 'LIU');`
3. 查询WANG同学不学的课程的课程号。
使用关系代数:`π CNO (C) - π CNO (σ SNO='WANG' (S ⨝ SC))`
使用SQL:`SELECT C.CNO FROM C WHERE C.CNO NOT IN (SELECT SC.CNO FROM SC WHERE SC.SNO = 'WANG');`
4. 查询至少选修两门课程的学生学号。
使用关系代数:`π SNO (σ COUNT(*) >= 2 (GROUP BY SNO) (SC)`
使用SQL:`SELECT SNO FROM SC GROUP BY SNO HAVING COUNT(*) >= 2;`
5. 查询选修课程中包含LIU老师所教全部课程的学生学号。
使用关系代数:`π SNO (S) - π SNO (σ CNO NOT IN (π CNO (σ TEACHER='LIU' (C))) (S ⨝ SC)`
使用SQL:`SELECT DISTINCT S.SNO FROM S WHERE S.SNO NOT IN (SELECT SC.SNO FROM SC JOIN C ON SC.CNO = C.CNO WHERE C.TEACHER != 'LIU');`
补充作业二中的问题同样涉及到了SQL的高级查询技巧,包括分组、聚合、子查询和连接:
1. 查询门门课程都及格的学生的学号。
使用SQL:`SELECT Sno FROM SC GROUP BY Sno HAVING MIN(Grade) >= 60;`
2. 查询既有课程大于90分又有课程不及格的学生的学号。
使用SQL:`SELECT DISTINCT Sno FROM SC WHERE Sno IN (SELECT Sno FROM SC WHERE Grade > 90) AND Sno IN (SELECT Sno FROM SC WHERE Grade < 60);`
3. 查询平均分不及格的课程号和平均成绩。
使用SQL:`SELECT Cno, AVG(Grade) FROM SC GROUP BY Cno HAVING AVG(Grade) < 60;`
4. 找出至少选修了2号学生选修过的全部课程的学生号。
使用SQL:`SELECT DISTINCT Sno FROM SC AS SCX WHERE NOT EXISTS (SELECT * FROM SC AS SCY WHERE SCY.Sno = '2' AND NOT EXISTS (SELECT * FROM SC AS SCZ WHERE SCZ.Sno = SCX.Sno AND SCZ.Cno = SCY.Cno));`
5. 求各门课程去掉一个最高分和最低分后的平均分。
这个问题需要两个步骤,首先找到每个课程去掉最高分和最低分后的平均分,然后计算这个平均分。
以上就是SQL练习题的答案解析,这些题目涵盖了SQL的基本查询以及更复杂的数据分析操作,对于提升SQL技能非常有帮助。通过解决这些题目,你可以更好地理解如何在实际场景中运用SQL进行数据操作和分析。
2009-09-11 上传
2009-07-08 上传
2012-11-15 上传
155 浏览量
2008-09-05 上传
2020-07-15 上传
142 浏览量
点击了解资源详情
点击了解资源详情
yang_fei1230
- 粉丝: 0
- 资源: 1
最新资源
- nostalgebraist-autoresponder:tumblr bot nostalgebraist-autoresponder的代码
- Multi depth pointer based Triangle List:非常快速且可动态扩展的数据结构。-开源
- Android参考源码-调用Android中的软键盘.zip
- ynapshot-CPETT,c语言测试源码是否正确,c语言
- baseballmatching2
- grunt-boilerplate:Grunt、LESS 和 include-replace 满足您所有的 webapp 开发需求
- ibc2k1.github.io
- xryuseix.github.io
- Android应用源码之悬浮窗 监视内容.zip项目安卓应用源码下载
- zbzh,c语言二十一点游戏源码简单,c语言程序
- Vier Hack-crx插件
- BowlingScoreCalculator
- Kinematics-Web-Calculator
- OFDM 频谱:带 GI 的 OFDM 频谱。-matlab开发
- ChatApplication
- No roses-crx插件