练习SQL查询:教学数据库学生关系S、课程关系C和选课关系SC
40 浏览量
更新于2023-12-28
收藏 219KB PPT 举报
no、Sname、Sage、Ssex、Sdept);教师关系 T(Tno、Tname、Tsex、Tage、Prof、Dept);课程关系 C(Cno、Cname、Tno、Sdept)。试构造以下SQL查询语言:1.列出所有选修了“002”号课程的同学的学号及姓名;2.列出“刘教授”所授课程的课程号和课程名;3.找出和“黄”姓教师拥有相同专业的教师;4.查询所有同时选修了“周”老师所授课程的同学的学号、姓名。".
本次SQL查询练习题涉及教学数据库中三个关系:学生关系S(Sno、Sname、Sage、Ssex、Sdept)、教师关系T(Tno、Tname、Tsex、Tage、Prof、Dept)和课程关系C(Cno、Cname、Tno、Sdept)。针对这些关系,我们试构造以下SQL查询语言:
1. 列出所有选修了“002”号课程的同学的学号及姓名
SELECT Sno, Sname
FROM S
WHERE Sno IN (SELECT Sno
FROM S, C
WHERE S.Sno = C.Sno and C.Cno = '002');
这个查询语句首先从学生关系S中选取学号和姓名,然后使用子查询来筛选出选修了002号课程的学生。通过IN子句将两个查询结果关联起来,最终得到所有选修了“002”号课程的同学的学号和姓名。
2. 列出“刘教授”所授课程的课程号和课程名
SELECT C.Cno, C.Cname
FROM C, T
WHERE T.Tname = '刘教授' and T.Tno = C.Tno;
这个查询语句从课程关系C和教师关系T中选取课程号和课程名,然后通过T.Tname = '刘教授'来筛选出刘教授所授课程的信息。
3. 找出和“黄”姓教师拥有相同专业的教师
SELECT T.Tname
FROM T
WHERE T.Dept = (SELECT Dept
FROM T
WHERE Tname LIKE '黄%');
这个查询语句首先通过子查询筛选出姓黄的教师所在的部门,然后在教师关系T中找出具有相同专业的教师。
4. 查询所有同时选修了“周”老师所授课程的同学的学号、姓名
SELECT S.Sno, S.Sname
FROM S, C, T
WHERE S.Sno = C.Sno and C.Tno = T.Tno
and T.Tname = '周'
and S.Sno IN (SELECT Sno
FROM S, C
WHERE S.Sno = C.Sno and C.Tno = T.Tno);
这个查询语句通过多表连接将学生关系S、课程关系C和教师关系T关联起来,然后通过多层嵌套的子查询来筛选出同时选修了“周”老师所授课程的同学的学号和姓名。
以上SQL查询语言的构造涉及了多表连接、子查询和条件筛选等操作,对于理解和掌握SQL查询语言的基本语法和用法具有一定的帮助。希望通过这些练习题,能够加深大家对SQL查询语言的理解和掌握,提高数据库操作的能力和水平。
2021-10-05 上传
2021-10-05 上传
2021-10-05 上传
2022-11-23 上传
2021-10-05 上传
2021-09-15 上传
黑色的迷迭香
- 粉丝: 784
- 资源: 4万+
最新资源
- 火炬连体网络在MNIST的2D嵌入实现示例
- Angular插件增强Application Insights JavaScript SDK功能
- 实时三维重建:InfiniTAM的ros驱动应用
- Spring与Mybatis整合的配置与实践
- Vozy前端技术测试深入体验与模板参考
- React应用实现语音转文字功能介绍
- PHPMailer-6.6.4: PHP邮件收发类库的详细介绍
- Felineboard:为猫主人设计的交互式仪表板
- PGRFileManager:功能强大的开源Ajax文件管理器
- Pytest-Html定制测试报告与源代码封装教程
- Angular开发与部署指南:从创建到测试
- BASIC-BINARY-IPC系统:进程间通信的非阻塞接口
- LTK3D: Common Lisp中的基础3D图形实现
- Timer-Counter-Lister:官方源代码及更新发布
- Galaxia REST API:面向地球问题的解决方案
- Node.js模块:随机动物实例教程与源码解析