2016-02-12 62 views
1

我們可以在關係代數中使用基本的'+',' - ','*','/'操作嗎?例如,如果我想知道約翰和從員工關係史密斯的工資差別,我可以寫關係代數中沒有基本的算術運算嗎?

select e1.salary - e2.salary 
from employee as e1, employee as e2 
where e1.name = 'John' and e2.name = 'Smith'; 

如何表示關係代數這種說法?

回答

1

不,我不這麼認爲,因爲正如所說的,關係代數只給出了表達關係而不是計算的表達方式。

我想知道如果它是工作關係演算,但我什至不知道你的查詢應該有一個翻譯...:

{t.salary|Employee(t)^(∃ e1 Employee(e1)) 
        ^(∃ e2 Employee(e2)) 
        ^(e1=John) 
        ^(e2=Smith) 
        ^???} 

儘管如此,關係代數和關係演算是基礎SQL語言,所以,如果你可以在SQL中做這樣的計算,我想知道爲什麼沒有至少有一種方法在這兩個基礎之一...