3
我有這個問題。如何將Sql命令轉換爲關係代數?
兩個表:第一,是員工:Employee(id, roomID)
和第二個是:Room(roomID, roomName)
的問題是:有多少員工在每個房間的工作。
我可以在SQL語言很容易做到這一點:
select Room.roomID, COUNT(Employee.id) as NumofEmployee
from Employee, Room
where employee.roomID = Room.roomID
group by Room.roomID
同樣的問題,但在關係代數語言編寫。這個問題讓我頭疼了這麼多,因爲我知道在這個語言,只是有一些簡單的操作:join
selection
projection
difference
。因此,許多SQL命令,我不知道該怎麼做,例如:group by
或count
。
謝謝:)
不要寫 「'FROM員工,Room'」 這樣的。這不好。使用JOIN關鍵字:'FROM Employee INNER JOIN Room ON employee.roomID = Room.roomID'。在這個階段它不是那麼重要,但是當你開始構建更強大的查詢時,它會產生一個_huge_差異。 –
@JoelCoehoorn不是你的評論做了什麼,以幫助海報可言,你能舉出這個說法有什麼道理?如果程序員不希望你以某種方式做他們不允許的構造,我總是會產生這樣的印象? –
語法存在的原因是歷史的。它來自於ansi-89標準。 ansi-92和更高版本更喜歡使用join關鍵字,並且某些最新標準甚至在某些情況下不贊成舊的A,B語法。 –