SQL查询解答:教务管理数据库操作示例
版权申诉
64 浏览量
更新于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等)来处理复杂的数据库查询,包括联接表、过滤条件、子查询以及聚合函数等。这在实际数据库管理、数据分析和数据报表制作中是非常常见的技能。
2021-10-03 上传
2022-05-18 上传
2023-06-14 上传
2021-12-24 上传
2022-05-18 上传
2021-10-03 上传
2022-07-14 上传
celkhn5460
- 粉丝: 0
- 资源: 4万+
最新资源
- 探索数据转换实验平台在设备装置中的应用
- 使用git-log-to-tikz.py将Git日志转换为TIKZ图形
- 小栗子源码2.9.3版本发布
- 使用Tinder-Hack-Client实现Tinder API交互
- Android Studio新模板:个性化Material Design导航抽屉
- React API分页模块:数据获取与页面管理
- C语言实现顺序表的动态分配方法
- 光催化分解水产氢固溶体催化剂制备技术揭秘
- VS2013环境下tinyxml库的32位与64位编译指南
- 网易云歌词情感分析系统实现与架构
- React应用展示GitHub用户详细信息及项目分析
- LayUI2.1.6帮助文档API功能详解
- 全栈开发实现的chatgpt应用可打包小程序/H5/App
- C++实现顺序表的动态内存分配技术
- Java制作水果格斗游戏:策略与随机性的结合
- 基于若依框架的后台管理系统开发实例解析