Теория баз данных



         

Оператор выбора SELECT - часть 6


FROM R2.R3

WHERE R2.Группа = R2.Группа;

Здесь часть WHERE задает условия соединения отношений R2 и R3, при отсутствии условий соединения в части WHERE результат будет эквивалентен расширенному декартову произведению, и в этом случае каждому студенту были бы приписаны все дисциплины из отношения R3, а не те, которые должна сдавать его группа.

Результат:

ФИО

Дисциплина

Петров Ф. И.

Базы данных

Сидоров К. А.

Базы данных

Миронов А. В.

Базы данных

Степанова К. Е.

Базы данных

Крылова Т. С.

Базы данных

Владимиров В. А.

Базы данных

Петров Ф. И.

Теория информации

Сидоров К. А.

Теория информации

Миронов А. В.

Теория информации

Степанова К. Е.

Теория информации

ФИО

Дисциплина

Крылова Т. С.

Теория информации

Владимиров В. А.

Теория информации

Петров Ф. И.

Английский язык

Сидоров К. А.

Английский язык

Миронов А. В.

Английский язык

Степанова К. Е.

Английский язык

Крылова Т. С.

Английский язык

Владимиров В. А.

Английский язык

Трофимов П. А.

Сети и телекоммуникации

Иванова Е. А.

Сети и телекоммуникации

Уткина Н. В.

Сети и телекоммуникации

Трофимов П. А.

Английский язык

Иванова Е. А.

Английский язык

Уткина Н. В.

Английский язык

Вывести список лентяев, имеющих несколько двоек.

SELECT DISTINCT R1.ФИО

FROM Rl a, R1 b

WHERE a.ФИО = b.ФИО AND

a.Дисциплина <>

b.Дисциплина AND

а.Оценка <= 2 AND b.Оценка <= 2:

Здесь мы использовали псевдонимы для именования отношения R, а и b, так как для записи условий поиска нам необходимо работать сразу с двумя экземплярами данного отношения.

Результат:

ФИО

Степанова К. Е.

Из этих примеров хорошо видно, что логика работы оператора выбора (декартово произведение—селекция—проекция) не совпадает с порядком описания в нем данных (сначала список полей для проекции, потом список таблиц для декартова произведения, потом условие соединения).


Содержание  Назад  Вперед