数据库作业3:陈俊潼_10185101210 SQL查询解答

需积分: 0 0 下载量 130 浏览量 更新于2024-08-05 收藏 176KB PDF 举报
"陈俊潼的10185101210号Homework31,涵盖了数据库相关的SQL查询和操作" 这篇作业主要涉及了SQL语言中的几个关键概念,包括选择(SELECT)、连接(JOIN)、子查询(SUBQUERY)、插入(INSERT)、删除(DELETE)等操作。下面将详细解释每个部分的知识点。 3.11 部分的SQL语句主要关注数据的查询: a. 这个查询用于找出计算机科学(Comp.Sci.)系的所有不同课程的名称。它通过自然连接(NATURAL JOIN)将`student`、`takes`和`course`表联接在一起,然后使用`USING`指定连接条件`course_id`,最后使用`WHERE`筛选出计算机科学系的课程,并用`DISTINCT`去除重复的课程名称。 b. 此查询找出不在2009年春季之前选课的学生ID。它首先创建一个子查询,找出所有在2009年春季之前选过课的学生ID,然后在主查询中使用`NOT IN`操作符排除这些ID,从而得到所需的结果。 c. 这个查询旨在找出每个部门薪水最高的教师姓名和薪水。它首先创建一个子查询,使用`GROUP BY`和`MAX`函数找出每个部门的最高薪水,然后通过自然连接将这个子查询与`instructor`表结合,找出对应薪水的教师信息。 d. 最后一个查询是找出在每个部门中薪水最低的教师的最低薪水。它使用了一个嵌套的子查询,先找到每个部门薪水最高的教师,然后再从中找出最低的薪水。 3.12 部分的SQL语句涉及数据的插入和删除: a. 这个语句向`course`表中插入一个新的记录,创建了一个名为“Weekly Seminar”的课程,属于计算机科学系(Comp.Sci.),并且学分为0。 b. 接下来,向`section`表中插入一条记录,表示在2009年秋季学期有一个CS-001的课程。 c. 这条语句使用子查询来插入数据,将所有计算机科学系的学生ID、新创建的课程ID(CS-001)、学期(Autumn)和年份(2009)添加到`takes`表中,表示这些学生选修了这门课。 d. 最后,删除所有在2009年秋季选修了CS-001课程的学生记录。这会从`takes`表中移除对应的数据。 这些SQL语句展示了如何在关系数据库中进行数据的检索、插入和删除,以及如何利用子查询和连接来处理复杂的数据关系。它们体现了SQL在数据库管理中的核心功能。