数据库系统概念 第七版 中文答案 第3章 SQL介绍

2024-04-10 1406阅读

温馨提示:这篇文章已超过418天没有更新,请注意相关的内容是否还可用!

3.1 将以下查询使用SQL语言编写,使用大学数据库模式。 (我们建议您实际在数据库上运行这些查询,使用我们在书籍网站db-book.com上提供的示例数据。有关设置数据库和加载示例数据的说明,请参阅上述网站。)

 数据库系统概念 第七版 中文答案 第3章 SQL介绍

a. 查找计算机科学系中学分为3的课程的标题。

b. 查找所有由名为Einstein的教师教授的学生的ID;确保结果中没有重复项。

c. 查找任何教师的最高工资。

d. 查找所有薪水最高的教师(可能有多个薪水相同的教师)。

e. 查找在2017年秋季开设的每个课程部分的注册人数。

f. 查找2017年秋季所有部分中的最大注册人数。

g. 查找在2017年秋季拥有最大注册人数的部分。.

Answer:

a.    查找计算机科学系中学分为3的课程的标题。

 数据库系统概念 第七版 中文答案 第3章 SQL介绍

b.    查找所有由名为Einstein的教师教授的学生的ID;确保结果中没有重复项。

 数据库系统概念 第七版 中文答案 第3章 SQL介绍

c.    查找任何教师的最高工资。

 数据库系统概念 第七版 中文答案 第3章 SQL介绍

d.    查找所有薪水最高的教师(可能有多个薪水相同的教师)。

 数据库系统概念 第七版 中文答案 第3章 SQL介绍

e.    查找在2017年秋季开设的每个课程部分的注册人数。

 数据库系统概念 第七版 中文答案 第3章 SQL介绍

或者

 数据库系统概念 第七版 中文答案 第3章 SQL介绍

f.    查找2017年秋季所有部分中的最大注册人数。

 数据库系统概念 第七版 中文答案 第3章 SQL介绍

g.    查找在2017年秋季拥有最大注册人数的部分。

数据库系统概念 第七版 中文答案 第3章 SQL介绍

3.2 假设你有一个关系grade_points(grade,points),它提供了从takes关系中的用字母表示的成绩等级到数值分数的转换;例如,“A”成绩可以被指定为对应于4分,而“A-”对应于3.7分,“B+”对应于3.3分,“B”对应于3分,依此类推。学生为提供的课程部分获得的成绩点定义为课程的学分乘以学生获得的成绩的数值点。

鉴于上述关系和我们的大学模式,请在SQL中编写以下每个查询。为简化起见,你可以假设takes关系中的元组没有成绩的空值。

a. 查找学生ID为'12345'的学生在所有选修的课程中获得的总成绩点。

b. 查找上述学生的平均绩点(GPA),即总成绩点除以相关课程的总学分。

c. 查找每个学生的ID和平均绩点。

d. 现在重新考虑前面部分的答案,假设某些成绩可能为null。解释你的解决方案是否仍然有效,如果无效,提供适当处理null的版本。

Answer:

a.    查找学生ID为'12345'的学生在所有选修的课程中获得的总成绩点。

 数据库系统概念 第七版 中文答案 第3章 SQL介绍

在上面的查询中,没有上过任何课程的学生不会有任何元组,而我们期望得到0作为答案。解决这个问题的一种方法是使用外部连接操作,我们将在后面的第4章中学习。另一种确保我们得到0作为答案的方法是通过以下查询:

 数据库系统概念 第七版 中文答案 第3章 SQL介绍

b.    查找上述学生的平均绩点(GPA),即总成绩点除以相关课程的总学分。

 数据库系统概念 第七版 中文答案 第3章 SQL介绍

和以前一样,没有修过任何课程的学生不会出现在上述成绩中;我们可以通过使用这个问题前面部分修改过的查询来确保这样一个学生出现在结果中。然而,在这种情况下的另一个问题是,积分的总和也将为0,从而导致除以零的情况。事实上,在这种情况下,唯一有意义的定义GPA的方法是将其定义为null。通过在上面的查询中添加以下联合子句,我们可以确保这样的学生以零GPA出现在结果中。

 数据库系统概念 第七版 中文答案 第3章 SQL介绍

c.    查找每个学生的ID和平均绩点。

 数据库系统概念 第七版 中文答案 第3章 SQL介绍

 数据库系统概念 第七版 中文答案 第3章 SQL介绍

d. 现在重新考虑前面部分的答案,假设某些成绩可能为null。解释你的解决方案是否仍然有效,如果无效,提供适当处理null的版本。

3.3    编写以下在数据库中使用大学模式的插入、删除或更新的SQL语句。

a. 将计算机科学系每位教师的薪水提高10%。

b. 删除所有从未开设过课程的课程(即在“section”关系中不存在的课程)。

c. 将总注册学分大于100的每位学生插入到相同系别作为教师,并设置薪水为$10,000。

Answer:

a. 将计算机科学系每位教师的薪水提高10%。

 数据库系统概念 第七版 中文答案 第3章 SQL介绍

b. 删除所有从未开设过课程的课程(即在“section”关系中不存在的课程)。

 数据库系统概念 第七版 中文答案 第3章 SQL介绍

c. 将总注册学分大于100的每位学生插入到相同系别作为教师,并设置薪水为$10,000。

 数据库系统概念 第七版 中文答案 第3章 SQL介绍

3.4    考虑图3.17中的保险数据库,其中主键已被下划线标识。为该关系数据库构建以下SQL查询。

a. 查找在2017年其车辆出现交通事故的人的总数。

b. 删除属于ID为'12345'的人所有年份为2010的车辆。

数据库系统概念 第七版 中文答案 第3章 SQL介绍

Answer:

a.    查找在2017年其车辆出现交通事故的人的总数。

 数据库系统概念 第七版 中文答案 第3章 SQL介绍

b.    删除属于ID为'12345'的人所有年份为2010的车辆。

数据库系统概念 第七版 中文答案 第3章 SQL介绍

3.5  假设我们有一个关系marks(ID, score),我们希望根据得分为学生分配成绩,规则如下:如果score

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]