在SQL查询(或视图定义)中术语“投影”指的是什么


15

在Oracle的文档的查询优化器,在视图合并,我发现下面的信息

视图合并优化适用于仅包含选择,投影和联接的视图。也就是说,可合并视图不包含集合运算符,聚合函数,DISTINCT,GROUP BY,CONNECT BY等。 (强调我的)

但是,我只能猜测这种预测实际上是指什么。

Answers:


17

在关系代数中,投影是指收集要在操作中使用的列的子集,即投影是所选列的列表。

在查询优化器步骤中,投影将自身表现为某些描述的缓冲区或假脱机区域,其中包含基础表或运算符的某些列的子集,或者基于后续操作使用的基于这些列的逻辑视图。

在视图中,投影等于在视图基础查询中选择的列列表。


13

投影是指要返回的表中所有列的集合的子集。范围从0 **到完整范围。

表格中有两个“集合”,分别对应于表格的两个维度。每个表都有一组和一组。表格中的每个单独值都可以在这两个“集合” 的特定交点处找到。但是,无法通过“转到”地址(例如T60)来找到您的值,就像使用Excel一样。

关系表中没有固有的顺序。要记住这一点很重要。取而代之的是,要检索单个值,可以选择列的子集(在这种情况下为一个)和行的子集(在这种情况下为一个)。要从所有可用列中选择一列的子集,您只需要知道其名称以及表名称即可。列名在其表中将是唯一的。

一旦选择了值所在的列,就需要选择其所在的特定行。但是,行没有列的命名方式。我们指定行的方式是。。。好吧,我们不完全是。。。我们指定一些我们想要的价值的东西。您必须了解一些与(所指)的价值相关的东西。如果您可以指定足够的相关信息,则可以将返回的行的集合减少到所需的行。

认为这就像一个大学生失去了背包。假设有人丢了它。他打电话找失物招领处,与会的女士说:“是的,我们有几十个背包。你能形容吗?” 您说“嗯,它是蓝色的?”。她回答“您是要问我还是要告诉我”,然后说:“我有八个忧郁症,必须做得更好,而您对此并不太确定。” 您说:“让我们瞧瞧,哦,是的!里面放着我的数学1010书。” “好,现在你只有四岁了​​。” 然后,您记得您本应在15分钟内见到女友露西,这引发了另一种记忆-那时您对Math 1010感到无聊,并写道,在背包底部用小写字母写着:“我爱露西”。瑞奇。”

投影可能比喻说您丢失了什么 -背包。选择可以比喻为描述其属性:它是蓝色的,里面有一本数学1010的书,底部写着“我爱露西”。

您使用SQL执行相同的操作。首先,您想查看什么样的信息。其次,描述您要看的一个或多个条件的标准。这些称为谓词真值陈述。对于集合中的一个或多个成员,它们是正确的。如果不是,则不返回任何值。

*一些供应商的SQL实现提供了打破这些规则的方法,例如Oracle中的嵌套表。但是,标准二维表仍然是主要形式。

** CJ Date写了一篇非常有趣的文章,名为“无列表”。我发现他非常值得一读,因为我在他的许多“写作”文章中都做了很多。我强烈推荐他们!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.