Использование псевдонимов при соединении таблиц
Часто при запросе информации необходимо осуществлять соединение таблицы с ее же копией. Например, это требуется в случае, когда нужно найти фамилии студентов, имеющих одинаковые имена. При соединении таблицы с ее же копией вводят псевдонимы (алиасы) таблицы. Запрос для поиска фамилий студентов, имеющих одинаковые имена, выглядит следующим образом:
SELECT FIRST.SURNAME, SECOND.SURNAME FROM STUDENT FIRST, STUDENT SECOND WHERE FIRST.NAME = SECOND.NAME
В этом запросе введены два псевдонима для одной таблицы STUDENT, что позволяет корректно задать выражение, связывающее две копии таблицы. Чтобы исключить повторения строк в выводимом результате запроса из-за повторного сравнения одной и той же пары студентов, необходимо задать порядок следования для двух значений так, чтобы одно значение было меньше, чем другое, что делает предикат асимметричным.
{,, SELECT FIRST. SURNAME, SECOND. SURNAME
fl FROM STUDENT FIRST, STUDENT SECOND
4
;! WHERE FIRST.NAME = SECOND.NAME
AND FIRST.SURNAME < SECOND.SURNAME
Упражнения
Написать запрос, выполняющий вывод списка всех пар фамилий студентов, проживающих в одном городе. При этом не включать в список комбинации фамилий студентов самих с собой (то есть комбинацию типа «Иванов-Иванов») и комбинации фамилий студентов, отличающиеся порядком следования (то есть включать одну из двух комбинаций типа «Иванов-Петров» и «Петров-Ива нов») .
Написать запрос, выполняющий вывод списка всех пар названий университетов, расположенных в одном городе, не включая в спи сок комбинации названий университетов самих с собой и пары на званий университетов, отличающиеся порядком следования.
Написать запрос, который позволяет получить данные о названиях университетов и городов, в которых они расположены, с рейтин гом, равным или превышающим рейтинг ВГУ.
| Maya 3D графика в кино и телевидении Воздействие испытаний ядерного оружия на здоровье населения Объектно-ориентированный язык программирования Java Объектно-ориентированное программирование Delphi Библиотека визуальных компонентов VCL и ее базовые классы Кроссплатформенное программирование для Linux Элементы управления Win32 Элементы управления Windows XP Файлы и устройства ввода/вывода Что такое экспертная система? Объектно-ориентированное программирование Инструментальные средства разработки экспертных систем Программирование на языке CLIPS Критерии и количественные характеристики надежности Расчет характеристик надежности невостанавливаемых резервированных изделий Расчет надежности системы с постоянным резервированием Интегрирование тригонометрических функций ; |