SQL查询解答:教务管理数据库操作示例
版权申诉
118 浏览量
更新于2024-08-05
收藏 23KB DOC 举报
"数据库第三章习题参考答案.doc"
在这些SQL查询中,涉及了数据库管理和关系型数据库的一些核心概念和操作。以下是对每个查询的详细解释:
1. **查询LIU教师所授课程的课程号和课程名**:
使用`SELECT C#, CNAME FROM C WHERE TEACHER = 'LIU'`,此查询从`C`表中选择`TEACHER`字段为'LIU'的记录,即找出教师LIU教授的所有课程的课程号(`C#`)和课程名(`CNAME`)。
2. **检索年龄大于23岁的男学生的学号和姓名**:
通过`SELECT S#, SNAME FROM S WHERE AGE > 23 AND SEX = 'M'`,筛选出`S`表中`AGE`大于23且`SEX`为'M'的记录,返回这些男生的学号和姓名。
3. **检索学号为202115146的学生所学课程的课程名和任课教师名**:
使用`SELECT CNAME, TEACHER FROM SC, C WHERE SC.C# = C.C# AND S# = '202115146'`,联接`SC`和`C`表,查找`S#`为'202115146'的记录,得到该学生选修的课程名和教师名。
4. **检索至少选修LIU教师所授课程中一门课程的女学生姓名**:
这里提供了三种方法:
- **连接查询**:`SELECT SNAME FROM S, SC, C WHERE S.S# = SC.S# AND SC.C# = C.C# AND SEX = 'F' AND TEACHER = 'LIU'`,连接所有表,找到性别为F且选修了教师为LIU的课程的学生。
- **嵌套查询**:`SELECT SNAME FROM S WHERE SEX = 'F' AND S# IN (SELECT S# FROM SC WHERE C# IN (SELECT C# FROM C WHERE TEACHER = 'LIU'))`,先找出LIU教师的课程号,然后找出选修这些课程的学生。
- **存在量词**:`SELECT SNAME FROM S WHERE SEX = 'F' AND EXISTS (SELECT * FROM SC WHERE SC.S# = S.S# AND EXISTS (SELECT * FROM C WHERE C.C# = SC.C# AND TEACHER = 'LIU'))`,检查每个女性学生是否存在选修了LIU教师课程的记录。
5. **检索WANG同学不学的课程的课程号**:
`SELECT C# FROM C WHERE NOT EXISTS (SELECT * FROM S, SC WHERE S.S# = SC.S# AND SC.C# = C.C# AND SNAME = 'WANG')`,通过NOT EXISTS子句找到没有WANG同学选修的课程号。
6. **检索至少选修两门课程的学生学号**:
使用`SELECT DISTINCT S.X.S# FROM SC AS S, SC AS X WHERE S.S# = X.S# AND S.C# != X.C#`,通过两个别名的`SC`表联接,找到学号相同但课程号不同的记录,表明这些学生至少选修了两门课程。
7. **检索全部学生都选修的课程的课程号与课程名**:
查询语句未给出完整,但可以推测是使用NOT EXISTS或EXCEPT操作找出所有学生都选修的课程。一个可能的实现是找到每门课程,然后排除没有被任何学生选修的课程。
8. **检索选修课程包含LIU教师所授课程的学生学号**:
类似于第4个问题,但目标是找出所有选修过LIU教师课程的学生,无论性别。这里也需要提供多种方法,类似于第4题的解决方案。
以上SQL查询展示了如何使用基本的SQL操作(如SELECT、FROM、WHERE、JOIN、IN、EXISTS、NOT EXISTS等)来处理复杂的数据库查询,包括联接表、过滤条件、子查询以及聚合函数等。这在实际数据库管理、数据分析和数据报表制作中是非常常见的技能。
2022-07-14 上传
2024-10-30 上传
2024-11-03 上传
2024-11-07 上传
2024-11-07 上传
2024-10-30 上传
2024-11-10 上传
celkhn5460
- 粉丝: 0
- 资源: 4万+
最新资源
- CoreOS部署神器:configdrive_creator脚本详解
- 探索CCR-Studio.github.io: JavaScript的前沿实践平台
- RapidMatter:Web企业架构设计即服务应用平台
- 电影数据整合:ETL过程与数据库加载实现
- R语言文本分析工作坊资源库详细介绍
- QML小程序实现风车旋转动画教程
- Magento小部件字段验证扩展功能实现
- Flutter入门项目:my_stock应用程序开发指南
- React项目引导:快速构建、测试与部署
- 利用物联网智能技术提升设备安全
- 软件工程师校招笔试题-编程面试大学完整学习计划
- Node.js跨平台JavaScript运行时环境介绍
- 使用护照js和Google Outh的身份验证器教程
- PHP基础教程:掌握PHP编程语言
- Wheel:Vim/Neovim高效缓冲区管理与导航插件
- 在英特尔NUC5i5RYK上安装并优化Kodi运行环境