У меня есть этот вопрос.Как вы преобразовываете команду 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 Employee, Room'", как это. Это плохо. Используйте ключевое слово JOIN: 'FROM Employee INNER JOIN Room ON employee.roomID = Room.roomID'. Это не так важно на данном этапе, но по мере того, как вы начинаете строить более сложные запросы, это делает разницу _huge_. –
@JoelCoehoorn не то, что ваш комментарий сделал что-нибудь, чтобы помочь плакату вообще, какие рассуждения вы можете привести для этого утверждения? Мне всегда кажется, что если программисты не хотят, чтобы вы делали это определенным образом, они не допустили бы конструкцию? –
Причина, по которой синтаксис существует вообще, является историческим. Это из стандарта анси-89. ansi-92 и более поздние версии предпочитают использовать ключевое слово join, а некоторые недавние стандарты даже не одобряют старый синтаксис A, B в определенных ситуациях. –