Запросы к связанным таблицам

Во всех ранее рассмотренных примерах демонстрировались разнообразные средства спецификации простых запросов. Все рассмотренные приемы построения простых запросов могут быть использованы не только в чистом виде, но и во всех возможных сочетаниях друг с другом. Рассмотренные типы запросов можно назвать простыми, поскольку все они использовали в качестве источника данных одну таблицу. В реальных информационных задачах гораздо чаще запросы адресуются не к одной, а к нескольким связанным таблицам, которые представляют все разнообразие данных конкретной предметной области.

В реальных задачах выборка данных осуществляется из нескольких связанных между собой таблиц.

В SELECT предложении выборки из связанных таблиц могут присутствовать одноименные столбцы. Во избежание неопределенности одноименные столбцы в такого рода запросах должны упоминаться с префиксом (через точку) в виде имени соответствующей таблицы: <имя таблицы>.<имя столбцах Если нет проблемы относительно происхождения столбца, имя таблицы можно не указывать.

Декартово произведение

В декартовом произведении выводятся все возможные комбинации строк-кортежей перемножаемых таблиц, даже такие, которые не имеют смысла в моделируемой предметной области.

Пример 36. Вывести декартово произведение таблиц «Факультет» и «Кафедра».

SELECT Факультет.*, Кафедра.*

FROM Факультет, Кафедра;

Здесь спецификация типа «Кафедра.*» означает «все поля таблицы Кафедра».

Результат выполнения запроса из примера 36

аббревиатура

Факультет.название

шифр

Кафедра.название

факультет

ит

Информационные технологии

пи

Прикладная информатика

ит

ен

Естественные науки

пи

Прикладная информатика

ит

аббревиатура

Факультет.название

шифр

Кафедра.название

факультет

фм

Физико-математический

пи

Прикладная информатика

ИТ

ИТ

Информационные технологии

ис

Информационные

системы

ИТ

ен

Естественные науки

ис

Информационные

системы

ИТ

фм

Физико-математический

ис

Информационные

системы

ИТ

ИТ

Информационные технологии

оф

Общая физика

ен

ен

Естественные науки

оф

Общая физика

ен

фм

Физико-математический

оф

Общая физика

ен

ИТ

Информационные

технологии

вм

Высшая математика

ен

ен

Естественные науки

вм

Высшая математика

ен

фм

Физико-математический

вм

Высшая математика

ен

ИТ

Информационные технологии

мм

Математическое

моделирование

фм

ен

Естественные науки

мм

Математическое

моделирование

фм

фм

Физико-математический

мм

Математическое

моделирование

фм

ИТ

Информационные

технологии

эф

Экспериментальная

физика

фм

ен

Естественные науки

эф

Экспериментальная

физика

фм

фм

Физико-математический

эф

Экспериментальная

физика

фм

Задание. Вывести декартово произведение трех таблиц «Кафедра», «Специальность» и «Студент».

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ   След >