Контрольная работа по "Программированию"
Автор: Sasha2579964 • Март 8, 2026 • Контрольная работа • 474 Слов (2 Страниц) • 11 Просмотры
Таблица 1: Пилоты (pilot)
Ключ | Наименование поля | Комментарий |
PK | pilot_id | |
name | ||
age | ||
rank | ||
education_level |
Таблица 2: Самолеты (airplane)
Ключ | Наименование поля | Комментарий |
PK | plane_id | |
capacity | Если cargo_flg = 1, то capacity – грузоподъемность (в тоннах), иначе количество пассажиров (в шт) | |
cargo_flg | cargo_flg = 1 – грузовой самолет cargo_flg = 0 – пассажирский |
Таблица 3: Рейсы (flight)
Ключ | Наименование поля | Комментарий |
PK | flight_id | |
PK | flight_dt | Дата вылета |
FK | plane_id | |
FK | first_pilot_id | |
FK | second_pilot_id | |
destination | Аэропорт прилета(напр.’Домодедово’) | |
quantity | Кол-во перевезенного груза или пассажиров (размерность совпадает с capacity) |
Задача 1
Напишите запрос, который выведет пилотов (name), которые в качестве второго пилота в августе 2023 года прилетали в аэропорт Шереметьево.
SELECT DISTINCT p.name
FROM pilot p
INNER JOIN flight f ON p.pilot_id = f.second_pilot_id
WHERE f.flight_dt LIKE ‘2023-08-%’
AND f.destination = ‘Шереметьево’
SELECT DISTINCT p.name
FROM pilot p, flight f
WHERE p.pilot_id = f.second_pilot_id
AND f.flight_dt LIKE ‘2023-08-%’
AND f.destination = ‘Шереметьево’
SELECT DISTINCT p.name
FROM pilot p, flight f
WHERE p.pilot_id = f.second_pilot_id
AND f.flight_dt BETWEEN '2023-08-01' AND '2023-09-01'
AND f.destination = 'Шереметьево'
Задача 2
Выведите пилотов (name) старше 45 лет, которые совершили 1 или более полетов на грузовых самолетах.
SELECT p.name
FROM pilot p
INNER JOIN flight f ON p.pilot_id = f.first_pilot_id OR p.pilot_id = f.second_pilot_id
INNER JOIN airplane a ON f.plane_id = a.plane_id
WHERE p.age > 45 AND a.cargo_flg = 1
GROUP BY p.name
HAVING COUNT(f.flight_id) >= 1
SELECT p.name
from pilot p
where p.age > 45
...