7praktika
.docxФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ
Ордена Трудового Красного Знамени
федеральное государственное бюджетное образовательное учреждение
высшего образования
«Московский технический университет связи и информатики»
Кафедра «Интеллектуальные системы в управлении и автоматизации»
Практическое задание №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 содержит информацию о клиентах и городах, в которых они живут. Необходимо найти всех клиентов, которые покупали товары из Москвы.
Самостоятельная работа
Создать две таблицы R и S и заполнить их данными (R: 8-10 кортежей, S: 4-5 кортежей).
Создаем две таблицы. Первая содержит наименование пиццерии, сорт пиццы и ее цену. Вторая – сорт пиццы и ее рейтинг.
Реализовать запросы на SQL, обеспечивающие все виды операций соединения по двум отношениям (тета-соединение, соединение по эквивалентности, внутреннее соединение, естественное соединение, левое внешнее соединение, полное внешнее соединение).
Выполняем тета-соединение:
Соединение по эквивалентности:
Внутреннее соединение:
Естественное соединение:
Левое внешнее соединение:
Правое внешнее соединение:
Полное внешнее соединение:
Реализовать запросы для операци объединения, пересечения, разности, деления
Операция объединения:
Операция пересечения:
Операция разности:
Операция деления: