Файл: Отчет по лабораторной работе 7 Запросы на соединение отношении.docx
Добавлен: 01.12.2023
Просмотров: 75
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
МИНОБРНАУКИ РОССИИФедеральное государственное бюджетное образовательное учреждение высшего образования «Тульский государственный университет»Институт прикладной математики и компьютерных наукОтчет по лабораторной работе №7«Запросы на соединение отношений»по дисциплине «Базы данных»Выполнил студент группы 220611:Щеглов П.Р.Проверил: доцент каф. ВТНабродова И.Н.Тула 2023
Рисунок 1 - Данные таблиц products и sub
Рисунок 2 - Данные таблицы clients
Запрос через конструкцию JOIN выглядит следующим образом: select name, rating from products join clients on rating>200 where cost>100; Рисунок 4 - Объединение двух таблиц (2)
О ба запроса выводят одни и те же значения, то есть названия продуктов и рейтинг их сорта, следовательно запросы работают корректно.
select rating, name from clients left join products on cost=100 where rating>200; Запрос для правой части будет выглядеть следующим образом: Рисунок 6 - Список фруктов с рейтингом 100 (2)
select rating, name from clients right join products on cost=100 where rating>200;
Запрос, в котором таблица соединяется (JOIN) сама с собой будет выглядеть следующим образом: select a.cname, b.rating from clients as a join clients as b on a.cnum_id = b.cnum_id where a.cnum_id>3004 and b.cnum_id>3004;
Рисунок 8 - Названия продуктов, их сорта и количество.
Запрос будет выглядеть следующим образом: select distinct name, quantity, cname, count(*) from products join clients on rating>250 where cost=100 group by cname, name, quantity having quantity>21; ВыводВ процессе выполнения лабораторной работы изучены и практически применены запросы на соединение отношений.
Цель работы
Цель работы – изучить и практически применить запросов на соединение отношений.Задания на лабораторную работу
1. Напишите запрос, демонстрирующий соединение двух таблиц с помощью конструкции SELECT ... FROM TABLE1, TABLE2 WHERE... . Перепишите тот же запрос с помощью конструкции JOIN. Убедитесь, что результаты выполнения запросов одинаковы. 2. Напишите запрос, демонстрирующий смысл и назначение конструкции LEFT JOIN. Перепишите его с помощью конструкции RIGHT JOIN. Убедитесь, что результаты выполнения запросов одинаковы. 3. Напишите запрос, в котором таблица соединяется (JOIN) сама с собой. 4. Напишите запрос, в котором агрегация происходит по результату соединения таблиц. То есть, в запросе должны присутствовать агрегирующая функция (SUM, AVG, MAX, MIN или COUNT), GRUOP BY и HAVING, WHERE и JOIN (внутренний или внешний). Будьте внимательны к этому заданию, оно высоко оценивается.Выполнение работы
-
Продемонстрируем таблицы и их данные с которыми будем работать и выполнять нужные запросы (см. рисунок 1 и 2).
Рисунок 1 - Данные таблиц products и sub
-
Рисунок 3 - Объединение двух таблиц (1)
Запрос через конструкцию SELECT ... FROM TABLE1, TABLE2 WHERE... выглядит следующим образом: select name, rating from products, clients where cost>100 and rating>200;
О ба запроса выводят одни и те же значения, то есть названия продуктов и рейтинг их сорта, следовательно запросы работают корректно.
-
Операция left join создает левое внешнее соединение. С помощью левого внешнего соединения выбираются все записи первой (левой) таблицы, даже если они не соответствуют записям во второй (правой) таблице.
select rating, name from clients left join products on cost=100 where rating>200; Запрос для правой части будет выглядеть следующим образом: Рисунок 6 - Список фруктов с рейтингом 100 (2)
select rating, name from clients right join products on cost=100 where rating>200;
-
Запрос выводящий сорт и рейтинг товаров, начиная с 5 товара.
Запрос, в котором таблица соединяется (JOIN) сама с собой будет выглядеть следующим образом: select a.cname, b.rating from clients as a join clients as b on a.cnum_id = b.cnum_id where a.cnum_id>3004 and b.cnum_id>3004;
-
Запрос, выводящий имя продуктов, их количество, а также сорт продукта, и количество таких записей.
Рисунок 8 - Названия продуктов, их сорта и количество.
Запрос будет выглядеть следующим образом: select distinct name, quantity, cname, count(*) from products join clients on rating>250 where cost=100 group by cname, name, quantity having quantity>21; ВыводВ процессе выполнения лабораторной работы изучены и практически применены запросы на соединение отношений.