我想知道代数关系中的 GROUP BY、SORT BY 和 ORDER BY 等价于什么?
这两种操作在关系代数中都是不可能的,但人们一直在为这些操作创建一些“扩展”(注:在原文中,部分文本写为下标)。
GROUP BY,根据《数据库系统基础》一书(Elmasri,Navathe 2011 年第 6 版):
另一种无法用基本关系代数表达的请求是
对数据库中的值集合指定数学聚合函数。
...
我们可以使用符号 ℑ (发音为
脚本 F)7,指定这些类型的请求,如下所示:
ℑ (R)
其中是R中指定的关系的属性列表,是()对的列表。在每一对这样的组合中,
是允许的函数之一,例如 SUM、AVERAGE、MAXIMUM、
MINIMUM、COUNT — 和 是由 R 指定的关系的属性。生成的关系具有分组属性以及函数列表中每个元素的一个属性。
排序依据(排序依据),约翰·L·唐纳森的讲义 http://web.archive.org/web/20120911095423/https://www.cs.oberlin.edu/%7Ejdonalds/311/lecture12.html.
由于关系是一个集合(或一个包),因此没有为关系定义顺序。也就是说,如果两个关系包含相同的元组,则它们是相同的,无论顺序如何。然而,用户经常希望查询的输出以某种特定的顺序列出。如果我们愿意允许一个输出不是关系而是元组有序列表的运算符,我们可以定义一个额外的运算符 τ 来对关系进行排序。
例如,表达式
τ姓、名(学生)
生成所有 Student 元组的列表,按 LastName(作为主排序键)然后 FirstName(作为辅助排序键)排序。 (仅当两个元组在主排序键上一致时才使用辅助排序键。排序操作可以列出任意数量的排序键,从最重要到最不重要。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)