什么是投影和选择?

71 sql database relational-algebra

投影和选择有什么区别?是吗:

  • 投影 - >用于选择表格的列; 和
  • 选择--->选择表格的行?

那么投影和选择分别是垂直和水平切片?

Eri*_*ler 145

究竟.

投影意味着选择 查询应返回哪些列(或表达式).

选择意味着要返回哪些行.

如果查询是

select a, b, c from foobar where x=3;
Run Code Online (Sandbox Code Playgroud)

那么"a,b,c"是投影部分,"其中x = 3"是选择部分.

  • @flow2k 观察得很好,但不要把责任归咎于我;-) (6认同)
  • 确实是一个清晰的解释,但我发现 SQL 的这方面令人困惑/误导:“SELECT”子句实际上执行*投影*(而不是选择),而“WHERE”子句实际上执行*选择*。 (5认同)
  • @ErichKitzmueller 哈 - 请放心,我没有这样的意图;有时我发现接受术语或接受定义或语法的这些微妙点可以让我更好地记住它。 (2认同)

小智 9

Simply PROJECTION处理消除或选择列,而SELECTION处理消除或选择行.


Arn*_*nab 6

投影和选择是关系代数中的两个一元运算,在 RDBMS(关系数据库管理系统)中有实际应用。

实际上,是的投影意味着从表中选择特定的列(属性),而选择意味着过滤行(元组)。此外,对于传统表格,投影和选择可以称为垂直和水平切片或过滤。

维基百科通过示例提供了更正式的定义,它们有助于进一步阅读关系代数:


小智 5

投影:在select子句中输入的内容,即"列列表"或"*"或"表达式",它们在投影下.

*选择:*我们在该列上应用的条件类型,即获取选择中的记录.

例如:

  SELECT empno,ename,dno,job from Emp 
     WHERE job='CLERK'; 
Run Code Online (Sandbox Code Playgroud)

在上面的查询中,"empno,ename,dno,job"这些列是在投影下,"where job ='clerk'"来自选择