我们可以在关系代数中使用基本的'+'、'-'、'*'、'/'运算吗?例如,如果我想知道约翰和史密斯的工资与员工关系的差异,我可以写
select e1.salary - e2.salary
from employee as e1, employee as e2
where e1.name = 'John' and e2.name = 'Smith';
如何在关系代数中表示此语句?
不,我不这么认为,因为正如人们所说,关系代数只提供了一种表达事物的方式,这要归功于关系,而不是计算。
我想知道它是否适用于关系演算,但我什至不确定您的查询是否应该有翻译......
{t.salary|Employee(t)^(∃ e1 Employee(e1))
^(∃ e2 Employee(e2))
^(e1=John)
^(e2=Smith)
^???}
尽管如此,关系代数和关系演算是SQL语言的基础,所以,如果你可以在SQL中进行这样的计算,我想知道为什么在这两个基础之一中没有至少一种方法可以做到这一点......