什么是投影和选择?


93

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

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

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

Answers:


180

究竟。

投影意味着选择 查询应返回的(或表达式)。

选择意味着要返回哪些行

如果查询是

select a, b, c from foobar where x=3;

那么“ a,b,c”是投影部分,“ x = 3”是选择部分。


3
确实是一个清晰的解释,但是我发现SQL的这一方面令人困惑/误导:该SELECT子句实际上执行了投影(而不是选择),而WHERE实际上是选择子句。
flow2k

4
@ flow2k观察得很好,但不要怪我;-)
埃里希·基茨默勒

2
@ErichKitzmueller Ha-放心,我没有这样的意图;有时,我发现使用术语/接受定义或语法的这些细微之处会使我记忆犹新。
flow2k


6

投影:在选择子句中键入的内容,即成为投影下的“列列表”或“ *”或“表达式”。

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

例如:

  SELECT empno,ename,dno,job from Emp 
     WHERE job='CLERK'; 

在上面的查询中,“ empno,ename,dno,job”列在投影下,“ where job ='clerk'”列在选择下


5

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

在实际意义上,是投影表示从表中选择特定的列(属性),选择表示过滤行(元组)。同样,对于常规表,“投影和选择”可以称为垂直和水平切片或过滤。

Wikipedia通过示例提供了对它们的更正式定义,它们对于进一步阅读关系代数很有帮助:

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.