4 Выполнение лабораторной работы
Пример запроса с условием и объединением таблиц (JOIN) изображен на рисунке 1.
Рисунок 1 – Запрос объединения
Этот запрос выбирает всех водителей и их выплаты, где премия больше 400.
Пример запроса с сортировкой данных изображен на рисунке 2.
Рисунок 2 – Сортировка таблицы
Этот запрос сортирует маршруты от самого короткого к самому длинному.
Пример запроса с использованием агрегации GROUP BY представлен на рисунке 3.
Рисунок 3 – Пример группировки данных
Этот запрос показывает количество отправлений для каждого маршрута. Пример запроса с использованием LIMIT представлен на рисунке 4.
Рисунок 4 – Пример запроса
Этот запрос выбирает первые 3 записи из таблицы платежей.
Листинг 1. Процесс Выполнения задания
mysql> SELECT * FROM DRIVERS -> JOIN PAYMENT ON DRIVERS.driver_id = PAYMENT.p_driver_id -> WHERE PAYMENT.p_bonus > 400; +-----------+--------------------+----------------+--------------------+-------------+--------+------------+-------------+---------+ | driver_id | d_surname | d_name | d_patronymic | d_experiens | pay_id | p_trans_id | p_driver_id | p_bonus | +-----------+--------------------+----------------+--------------------+-------------+--------+------------+-------------+---------+ | 3 | Кузнецов | Дмитрий | Сергеевич | 10 | 1 | 1 | 3 | 500.00 | | 1 | Иванов | Алексей | Петрович | 7 | 2 | 2 | 1 | 450.00 | | 5 | Васильева | Ольга | Андреевна | 5 | 4 | 4 | 5 | 402.50 | +-----------+--------------------+----------------+--------------------+-------------+--------+------------+-------------+---------+ 3 rows in set (0.00 sec)
mysql> SELECT * FROM ROUTES ORDER BY r_mileage; +---------+---------------------------------------------------+-----------+---------+ | rout_id | r_name | r_mileage | r_rate | +---------+---------------------------------------------------+-----------+---------+ | 4 | Ростов-на-Дону - Краснодар | 300 | 1500.00 | | 3 | Казань - Нижний Новгород | 400 | 1800.00 | | 1 | Москва - Санкт-Петербург | 700 | 2750.00 | | 5 | Владивосток - Хабаровск | 750 | 3080.00 | | 2 | Екатеринбург - Новосибирск | 900 | 3520.00 | +---------+---------------------------------------------------+-----------+---------+ 5 rows in set (0.00 sec)
mysql> -- Количество перевозок по каждому маршруту mysql> SELECT t_rout_id, COUNT(*) AS total_shipments -> FROM TRANSPORTATIONS -> GROUP BY t_rout_id; +-----------+-----------------+ | t_rout_id | total_shipments | +-----------+-----------------+ | 1 | 1 | | 2 | 1 | | 3 | 1 | | 4 | 1 | | 5 | 1 | +-----------+-----------------+ 5 rows in set (0.00 sec)
mysql> -- Первые 3 записи из таблицы PAYMENT mysql> SELECT * FROM PAYMENT LIMIT 3; +--------+------------+-------------+---------+ | pay_id | p_trans_id | p_driver_id | p_bonus | +--------+------------+-------------+---------+ | 1 | 1 | 3 | 500.00 | | 2 | 2 | 1 | 450.00 | | 3 | 3 | 2 | 345.00 | +--------+------------+-------------+---------+ 3 rows in set (0.00 sec) |
