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

Курило_ЛабРаб5

.pdf
Скачиваний:
0
Добавлен:
16.05.2025
Размер:
429.81 Кб
Скачать

Запрос, формирующий список покупателей, совершивших хотя бы одну

покупку, можно записать следующим образом:

Практическая работа

При выполнении лабораторной работы необходимо:

для заданной предметной области построить многотабличный запрос на выборку с использованием объединения;

для заданной предметной

области построить

запрос на

выборку, содержащий вложенный запрос;

 

составить отчет по лабораторной работе.

Пример выполнения работы

Создадим многотабличный запрос на выборку, который выводит фамилии, имена и отчества покупателей магазина, сделавших менее двух покупок:

11

Создадим запрос на выборку с вложенным запросом, выводящим

перечень книг, которые не заказывались покупателями:

12

4 Выполнение лабораторной работы

Пример запроса с условием и объединением таблиц (JOIN) изображен на рисунке 1.

Рисунок 1 – Запрос объединения

Этот запрос объединяет таблицы delivery, route и payment, чтобы -

показать дополнительную информацию о перевозках, включая название маршрута и премию.

Пример запроса на выборку, содержащего вложенный запрос,

изображен на рисунке 2.

Рисунок 2 – Пример запроса на выборку, содержащего вложенный запрос Этот запрос выбирает премии водителей, чей трудовой стаж меньше 5

лет, используя вложенный запрос для определения нужных driver_id.

13

 

Листинг 1. Процесс Выполнения задания

 

 

mysql>

-- Полная информация о перевозках с данными водителей, маршрутов и выплат

mysql>

SELECT

 

 

 

 

->

 

t.trans_id,

 

 

 

->

 

r.r_name AS route_name,

 

 

->

 

CONCAT(d.d_surname, ' ', d.d_name) AS driver_fullname,

->

 

t.t_departure,

 

 

 

->

 

t.t_arrival,

 

 

 

->

 

p.p_bonus,

 

 

 

->

 

r.r_rate

 

 

 

->

FROM

 

 

 

 

 

->

 

TRANSPORTATIONS t

 

 

 

->

JOIN

 

 

 

 

 

->

 

ROUTES r ON t.t_rout_id = r.rout_id

 

->

JOIN

 

 

 

 

 

->

 

PAYMENT p ON t.trans_id = p.p_trans_id

->

JOIN

 

 

 

 

 

->

 

DRIVERS d ON p.p_driver_id = d.driver_id;

+----------

 

+---------------------------------------------------

 

 

 

+----------------------------

-----+-------------

 

 

+------------

+---------

+---------

+

| trans_id

| route_name

 

 

| driver_fullname

| t_departure | t_arrival | p_bonus | r_rate

|

+----------

 

+---------------------------------------------------

 

 

 

+----------------------------

-----+-------------

 

 

+------------

+---------

+---------

+

|

1

| Москва - Санкт-Петербург

 

| Кузнецов Дмитрий

| 2024-04-01

| 2024-04-02 |

500.00 | 2750.00 |

|

2

| Екатеринбург - Новосибирск

 

| Иванов Алексей

| 2024-04-03

| 2024-04-05 |

450.00 | 3520.00 |

|

3

| Казань - Нижний Новгород

 

| Смирнова Елена

| 2024-04-06

| 2024-04-06 |

345.00 | 1800.00 |

|

4

| Ростов-на-Дону - Краснодар

 

| Васильева Ольга

| 2024-04-07

| 2024-04-08 |

402.50 | 1500.00 |

+----------

 

+---------------------------------------------------

 

 

 

+----------------------------

-----+-------------

 

 

+------------

+---------

+---------

+

4 rows

in set (0.00 sec)

 

 

 

mysql>

-- Премии водителей со стажем менее 5 лет

mysql>

SELECT *

 

 

 

->

FROM PAYMENT

 

 

 

->

WHERE p_driver_id IN (

 

 

 

->

 

SELECT driver_id

 

 

 

->

 

FROM DRIVERS

 

 

 

->

 

WHERE d_experiens < 5

 

 

->

);

 

 

 

 

 

+--------

+------------

 

+-------------

+---------

 

+

| pay_id |

p_trans_id | p_driver_id | p_bonus |

+--------

+------------

 

+-------------

+---------

 

+

|

3 |

 

3 |

2 |

345.00 |

+--------

+------------

 

+-------------

+---------

 

+

1 row in set (0.01 sec)

14

5Выводы

Входе лабораторной работы были произведены сложные запросы на выборки с использованием объединения и вложенных запросов на основе заполненной базы данных cargo_transportations в прошлых лабораторных работах.

15

Соседние файлы в предмете Интеллектуальные базы данных