SQL练习:大学课程数据查询
需积分: 0 183 浏览量
更新于2024-08-04
收藏 1.41MB PDF 举报
"该资源是关于SQL的实践练习,提供了几个查询问题,涉及数据库操作,如查找特定部门的课程、获取指定教师教授的学生ID、查询最高薪资的教师、找出所有最高薪资的教师、统计每个秋季2017课程的注册人数、找出所有秋季2017课程的最大注册人数以及特定学期的课程等。建议在提供的数据库上实际运行这些查询以获得结果。"
在SQL中,这些问题可以通过不同的查询语句来解决。以下是根据题目描述对每个查询的解答:
a. 找到计算机科学系(Com.P.Si. Department)有3次修订的课程标题:
```sql
SELECT title FROM courses WHERE department = 'Com.P.Si.' AND revisions = 3;
```
此查询将返回所有在计算机科学系且修订次数为3的课程标题。
b. 查找由名为Einstein的教师教授的所有学生ID,并确保结果中没有重复:
```sql
SELECT DISTINCT student_id FROM enrollments JOIN sections ON enrollments.section_id = sections.id JOIN instructors ON sections.instructor_id = instructors.id WHERE instructors.name = 'Einstein';
```
这将返回Einstein教授所教学生的唯一ID。
c. 查找任何教师的最高薪资:
```sql
SELECT MAX(salary) FROM instructors;
```
这条查询将返回所有教师中最高的薪水。
d. 找到所有薪资最高的教师(可能存在多个相同薪资的教师):
```sql
SELECT * FROM instructors WHERE salary = (SELECT MAX(salary) FROM instructors);
```
这将返回所有薪资与最高薪资相等的教师信息。
e. 统计每个秋季2017课程的注册人数:
```sql
SELECT sections.id, COUNT(DISTINCT enrollments.student_id) AS enrollment_count FROM sections JOIN enrollments ON sections.id = enrollments.section_id WHERE sections.semester = 'Fall' AND sections.year = 2017 GROUP BY sections.id;
```
这将按课程ID显示每个秋季2017课程的注册学生数。
f. 找出所有秋季2017课程的最大注册人数:
```sql
SELECT MAX(enrollment_count) AS max_enrollment FROM (
SELECT sections.id, COUNT(DISTINCT enrollments.student_id) AS enrollment_count
FROM sections
JOIN enrollments ON sections.id = enrollments.section_id
WHERE sections.semester = 'Fall' AND sections.year = 2017
GROUP BY sections.id
) AS subquery;
```
这将返回秋季2017所有课程中的最大注册人数。
g. 找到秋季2017学期的课程(查询未完整,可能需要额外的信息):
由于查询不完整,假设我们正在寻找的是秋季2017学期的课程ID和标题,可以这样写:
```sql
SELECT sections.id, courses.title FROM sections JOIN courses ON sections.course_id = courses.id WHERE sections.semester = 'Fall' AND sections.year = 2017;
```
这将返回秋季2017学期的所有课程及其ID和标题。
2023-06-06 上传
2022-01-04 上传
2023-04-01 上传
2024-04-18 上传
2023-05-26 上传
2023-04-01 上传
2023-09-03 上传
2023-06-08 上传
m0_60957932
- 粉丝: 3
- 资源: 1
最新资源
- 最优条件下三次B样条小波边缘检测算子研究
- 深入解析:wav文件格式结构
- JIRA系统配置指南:代理与SSL设置
- 入门必备:电阻电容识别全解析
- U盘制作启动盘:详细教程解决无光驱装系统难题
- Eclipse快捷键大全:提升开发效率的必备秘籍
- C++ Primer Plus中文版:深入学习C++编程必备
- Eclipse常用快捷键汇总与操作指南
- JavaScript作用域解析与面向对象基础
- 软通动力Java笔试题解析
- 自定义标签配置与使用指南
- Android Intent深度解析:组件通信与广播机制
- 增强MyEclipse代码提示功能设置教程
- x86下VMware环境中Openwrt编译与LuCI集成指南
- S3C2440A嵌入式终端电源管理系统设计探讨
- Intel DTCP-IP技术在数字家庭中的内容保护