Для выполнения задания мы будем использовать демонстрационную базу данных авиаперелётов (с именем demo) - от разработчиков СУБД Postges Pro. Описание модели данных приведено ЗДЕСЬ. Обязательно изучите структуру базы данных, поскольку иначе суть задания вам окажется непонятной.
Примеры некоторых готовых запросов к базе данных demo:
- Вывести список всех самолётов кампании:
SELECT * FROM aircrafts;
- Вывести любые пять аэропортов:
SELECT airport_code, city FROM airports LIMIT 5;
- Выбрать все самолёты компании Airbus:
SELECT * FROM aircrafts WHERE model LIKE 'Аэробус%';
- Найти в таблице «Аэропорты» те из них, которые имеют названия длиной три символа:
SELECT * FROM airports WHERE airport_name LIKE '___';
Выполнение работы:
А) Соединитесь с БД demo и напишите запрос на языке SQL, решающий следующую задачу (в соответствии с вашим вариантом):
0. Какие самолёты имеют дальность полёта в диапазоне от 3 000 км до 6 000 км?
1. Выведите отменённые рейсы в сентябре 2017 года из аэропорта Пулково, отсортированные по возрастанию даты.
2. Сколько мест было занято в самолёте, летевшем из Анапы в Шереметьево 5 августа 2017 года?
3. Покажите список названий аэропортов, в которых было принято более 1000 рейсов с 1 июня 2017 года. Список отсортировать по убыванию количества рейсов.
4. Определите номера и времена отправления всех рейсов в 2017 году, опоздавших в аэропорты назначения более чем на один час.
5. Определите 30 номеров маршрутов, на каких чаще всего использовались самолёты компании Boeing.
6. Сколько маршрутов обслуживают самолёты каждого типа?
7. Каковы были в 2017 году максимальные и минимальные цены на билеты из Шереметьево в Сочи?
8. Определите фамилию и имя пассажира, пришедшего раньше всех на регистрацию рейса из Шереметьево в Воркуту 2 августа 2017 г.
9. Получите перечень аэропортов в тех городах, в которых больше одного аэропорта.
Б) Решите ту же самую задачу (в соответствии с вашим вариантом), написав программу на языке Python, не используя SQL-запрос. Используйте при написании программы технологию ORM, т. е. реализуйте доступ к данным с помощью объектного подхода к выполнению запросов, предоставляемого библиотекой SQLAlchemy. Для примера дана программа, написанная на Python с использованием библиотеки SQLAlchemy, подсчитывающая количество посадочных мест в самолётах различных типов в зависимости от категории мест.