Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

7praktika

.docx
Скачиваний:
15
Добавлен:
30.06.2021
Размер:
2.95 Mб
Скачать

ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ

Ордена Трудового Красного Знамени

федеральное государственное бюджетное образовательное учреждение

высшего образования

«Московский технический университет связи и информатики»

Кафедра «Интеллектуальные системы в управлении и автоматизации»

Практическое задание7

по дисциплине

«Технологии баз данных»

Выполнили:

Студенты группы

БСТ1801

Францев Артём

Авезов Гуванч

Москва 2021

Практическое задание №7

Цель: изучить различные виды операций соединения по двум отношениям (тетасоединение, соединение по эквивалентности, внутреннее соединение, естественное соединение, левое и правое внешнее соединение, полное внешнее соединение), а также запросы для операций объединения, пересечения, разности и деления.

Выполнение:

Таблица о клиентах (CLIENT):

Таблица о сделках (DEAL):

Таблица о товарах (PRODUCT):

Пример 7.3. Получить сведения о товарах, дате сделок, количестве проданного товара и покупателях

Пример 7.4. Вывести информацию о всех товарах. Для проданных товаров будет указана дата сделки и количество. Для непроданных эти поля останутся пустыми.

Пример 7.5. Построить запрос с INNER JOIN. Результат отобразить в виде таблицы.

В данном запросе оператора INNER JOIN условие сравнения — это равенство полей ID_product двух таблиц Продукт и Сделка.

Пример 7.6. Построить запрос с LEFT JOIN. Результат отобразить в виде таблицы.

Суть запроса в том, что сначала происходит формирование таблицы внутренним соединением (оператор) левой и правой таблиц. Затем, в результат добавляются записи левой таблицы, не вошедшие в результат формирования таблицы внутренним соединением. Для них, соответствующие записи из правой таблицы заполняются значениями NULL.

Пример 7.7. Построить запрос с RIGHT JOIN. Результат отобразить в виде таблицы.

Суть запроса в том, что сначала происходит формирование таблицы внутренним соединением (оператор) левой и правой таблиц. Затем, в результат добавляются записи правой таблицы, не вошедшие в результат формирования таблицы внутренним соединением. Для них, соответствующие записи из левой таблицы заполняются значениями NULL.

Пример 7.8. Построить запрос с FULL JOIN. Результат отобразить в виде таблицы.

Суть запроса в том, что сначала происходит формирование таблицы внутренним соединением (оператор) левой и правой таблиц. Затем, в результат добавляются записи правой таблицы, не вошедшие в результат формирования таблицы внутренним соединением. Для них, соответствующие записи из левой таблицы заполняются значениями NULL и добавляются записи левой таблицы, не вошедшие в результат формирования таблицы внутренним соединением. Для них также заполняются соответствующие значения из правой таблицы значением NULL.

Пример 7.9. Построить два запроса с декартовым произведением (используя

CROSS и без него с использованием WHERE )

CROSS JOIN + WHERE(предикат) и INNER JOIN(предикат) синтаксически являются альтернативными формами записи одной и той же логической операции внутреннего соединения. Синтаксис CROSS JOIN + WHERE для операции соединения называют устаревшим.

Оператор SQL CROSS JOIN формирует таблицу перекрестным соединением (декартовым произведением) двух таблиц. При использовании оператора CROSS JOIN каждая строка левой таблицы сцепляется с каждой строкой правой таблицы. В результате получается таблица со всеми возможными сочетаниями строк обеих таблиц.

Пример 7.10. Создать: отношение T1 (CREATE VIEW T1 AS SELECT рост , вес FROM R) Создадим относительно наших таблиц:

отношение TT (CREATE VIEW TТ AS SELECT…)

отношение T2 (CREATE VIEW T2 AS SELECT…)

отношение T (Select ...)

Пример 7.11. Найти мультфильмы, которые показывают на R2 каналах

Аналогично по нашим таблицам выведем товары и кто их купил, которые относятся к типу ноутбук.

Пример 7.12. Вывести фамилии людей, которые владеют языками из R2 Аналогично по нашим таблицам выведем фамилии людей, которые купили планшеты или телефоны.

Пример 7.13. Отношение R содержит информацию о пиццерии и изготавливаемой ею пицце. Необходимо найти все пиццерии, где подают и cheese и supreme. Аналогично по нашим таблицам, отношение R содержит информацию о клиентах и городах, в которых они живут. Необходимо найти всех клиентов, которые покупали товары из Москвы.

Самостоятельная работа

  1. Создать две таблицы R и S и заполнить их данными (R: 8-10 кортежей, S: 4-5 кортежей).

Создаем две таблицы. Первая содержит наименование пиццерии, сорт пиццы и ее цену. Вторая – сорт пиццы и ее рейтинг.

  1. Реализовать запросы на SQL, обеспечивающие все виды операций соединения по двум отношениям (тета-соединение, соединение по эквивалентности, внутреннее соединение, естественное соединение, левое внешнее соединение, полное внешнее соединение).

Выполняем тета-соединение:

Соединение по эквивалентности:

Внутреннее соединение:

Естественное соединение:

Левое внешнее соединение:

Правое внешнее соединение:

Полное внешнее соединение:

  1. Реализовать запросы для операци объединения, пересечения, разности, деления

Операция объединения:

Операция пересечения:

Операция разности:

Операция деления:

Соседние файлы в предмете Технологии баз данных