Select和Project Operations之间有什么区别

时间:2011-03-25 12:44:57

标签: sql select relational-algebra

我指的是基本的关系代数运算符 在我看来,可以通过选择完成项目所能完成的一切。

我不知道我错过了是否存在差异或某种细微差别。

9 个答案:

答案 0 :(得分:45)

选择操作:此操作用于从表(关系)中选择指定给定逻辑的行,该逻辑称为predicate。谓词是用户定义的条件,用于选择用户选择的行。

项目操作:如果用户有兴趣选择几个属性的值,而不是选择表(关系)的所有属性,那么应该选择PROJECT操作。

查看更多:Relational Algebra and its operations

答案 1 :(得分:45)

PROJECT 会消除列,而 SELECT 会消除行。

答案 2 :(得分:19)

在关系代数中,“选择”和“投影”是不同的操作,但SQL SELECT将这些操作组合在一个语句中。

Select检索关系(表)中的元组(行),其中'predicate'部分(WHERE子句)中的条件为真。

Project检索指定的属性(列)。

以下SQL SELECT查询:

select field1,field2 from table1 where field1 = 'Value';

是关系代数的投影和选择操作的组合。

答案 3 :(得分:8)

项目不是声明。它是select语句的功能。 Select语句有三个功能。他们是选择,投影,加入。选择 - 它检索给定查询满足的行。 投影 - 它选择给定查询满足的列。 Join-it加入两个或多个表

答案 4 :(得分:1)

选择操作用于从满足选择条件的关系中选择元组的子集它过滤掉那些满足条件的元组。选择操作可以被视为水平分区成两组元组 - 那些满足条件的元组是选中并且那些元组不选择条件被丢弃 西格玛(R) 投影操作用于从满足选择条件的关系中选择属性。它只过滤掉那些满足条件的元组。投影操作可以被视为垂直分区为两部分 - 那些满足条件被选择其他被丢弃的部分 Π(R) 属性列表是属性数

答案 5 :(得分:1)

Project影响行时,

Select会影响表格中的列。另一方面Project用于选择具有specefic属性的列而不是选择所有列数据

答案 6 :(得分:0)

从具有某种条件的关系中选择提取行,并从具有或不具有某些条件的关系中提取项目提取特定数量的属性/列。

答案 7 :(得分:0)

关系代数中的项目运算符(π)与SQL中的SELECT关键字之间的区别在于,如果结果表/集具有多个相同元组的出现次数,则π将仅返回其中一个,而SQL SELECT将全部返回。

答案 8 :(得分:0)

选择仅更改结果表的基数,但项目确实会改变关系度和基数。