Добавил:
tg: @petmanchenko Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КП Информационная система по продаже билетов в аэропорту.docx
Скачиваний:
1
Добавлен:
02.02.2025
Размер:
1.15 Mб
Скачать
  1. Работа с запросами

Основным объектом хранения реляционной базы данных является таблица, поэтому все SQL-запросы – это, по сути, операции над таблицами. Благодаря запросам можно объединять, просматривать, дополнять и редактировать информацию из таблиц.

    1. Создание запросов для просмотра, добавления и редактирования информации

Текст запроса №1:

Просмотр, добавление и редактирование информации о пассажирах.

Код запроса для просмотра информации о пассажирах:

SELECT *

FROM Пассажир;

Результат данного кода представлен на рисунке 31:

Рисунок 31 – просмотр информации о пассажирах

Код запроса для добавления информации о пассажирах:

ALTER TABLE Пассажир

ADD (Гражданство varchar2(20));

Результат данного кода представлен на рисунках 32-33:

Рисунок 32 – добавление информации о пассажирах

Рисунок 33 – добавление информации о пассажирах

Код запроса для редактирования информации о пассажирах:

UPDATE Пассажир

SET Отч= ‘Алимович’

WHERE ном_док= ‘4020426152’;

Результат данного кода представлен на рисунках 34-35:

Рисунок 34 – редактирование информации о пассажирах

Рисунок 35 – редактирование информации о пассажирах

Текст запроса №2:

Просмотр, добавление и редактирование информации в расписании полётов самолётов.

Код запроса для просмотра информации расписания полётов самолётов:

SELECT *

FROM Рас_пол;

Результат данного кода представлен на рисунке 36:

Рисунок 36 – просмотр информации расписания полётов самолётов

Код запроса для добавления информации в расписание полётов самолётов:

ALTER TABLE Рас_пол

ADD (Длит_пол varchar2(15));

Результат данного кода представлен на рисунках 37-38:

Рисунок 37 – добавление информации в расписание полётов самолётов

Рисунок 38 – добавление информации в расписание полётов самолётов

Код запроса для редактирования информации в расписании полётов самолётов:

UPDATE Рас_пол

SET Стоим_бил= ‘12000’

WHERE Ном_рейса= ‘U6 547’;

Результат данного кода представлен на рисунках 39-40:

Рисунок 39 – редактирование информации в расписании полётов самолётов

Рисунок 40 – редактирование информации в расписании полётов самолётов

    1. Создание основных запросов

Текст основного запроса №1:

Вывести перечень всех работников аэропорта (фамилия, имя, должность, название отдела, стаж работы, пол, возраст, наличие и количество детей) с указанием общего числа всех работников.

Код запроса:

SELECT Сотр.Фам, Сотр.Имя, Сотр.Назв_долж, Отдел.Название, ROUND((SYSDATE - Дата_пр_р)/365) ||' лет' Стаж, Сотр.Пол, ROUND((SYSDATE - Д_Р)/365) ||' лет' Возраст,

CASE

WHEN Сотр.Кол_дет=0 THEN 'Отсутствуют'

ELSE to_char(Сотр.Кол_дет)

END Дети

FROM Сотр

LEFT JOIN Отдел ON Сотр.id_отд=Отдел.id_отд

UNION

SELECT 'Общее число:', to_char(COUNT(id_сотр)), null, null, null, null, null, null

FROM Сотр

LEFT JOIN Отдел ON Сотр.id_отд=Отдел.id_отд

ORDER BY Имя;

Результат данного кода представлен на рисунке 41:

Рисунок 41 – результат основного запроса №1

Текст основного запроса №2:

Вывести перечень и общее число пассажиров, купивших билет на указанный рейс в указанный день. В качестве примера был взят рейс - SU 035 и дата - 10 мая 2021 год.

Код запроса:

SELECT Билет.*, Пассажир.Вид_док, Пассажир.Имя, Пассажир.Фам, Пассажир.Отч, Пассажир.Д_Р, Пассажир.Гражданство

FROM Билет

LEFT JOIN Пассажир ON Пассажир.Ном_док=Билет.Ном_док

WHERE Дата='10-май-21' AND Ном_рейса='SU 035'

UNION

SELECT 'Общее число:', to_char(COUNT(Ном_бил)), null, null, null, null, null, null, null, null, null

FROM Билет

LEFT JOIN Пассажир ON Пассажир.Ном_док=Билет.Ном_док

WHERE Дата='10-май-21' AND Ном_рейса='SU 035';

Результат данного кода представлен на рисунке 42:

Рисунок 42 – результат основного запроса №2

Текст основного запроса №3:

Вывести перечень сотрудников, имеющих детей младше 5 лет, и общего их (сотрудников) числа.

Код запроса:

SELECT Сотр.*

FROM Дети

LEFT JOIN Дети_Сотр ON Дети.id_реб=Дети_Сотр.id_реб

LEFT JOIN Сотр ON Дети_Сотр.id_сотр=Сотр.id_сотр

WHERE ((SYSDATE - Дети.Д_Р)/365)<5

UNION

SELECT 'Общее число:', to_char(COUNT(Дети_Сотр.ID_сотр)), null, null, null, null, null, null, null

FROM Дети

LEFT JOIN Дети_Сотр ON Дети.id_реб=Дети_Сотр.id_реб

WHERE ((SYSDATE - Дети.Д_Р)/365)<5;

Результат данного кода представлен на рисунке 43:

Рисунок 43 – результат основного запроса №3

Текст основного запроса №4:

Вывести перечень и общее число самолётов, находящихся в аэропорту в указанный период времени. Выбранный период – 10 мая 2021 года с 13:00 до 15:00 часов.

Код запроса:

SELECT id_сам, null

FROM Рас_стоян

WHERE

(((Дата_прил = to_date('10-МАЙ-21', 'DD-MON-YY')) and (to_date(Время_прил, 'HH24:MI') < to_date('15:00', 'HH24:MI'))) or

((to_date('10-МАЙ-21', 'DD-MON-YY') > Дата_прил) AND (to_date('10-МАЙ-21', 'DD-MON-YY') < Дата_отл)) or

((Дата_отл = to_date('10-МАЙ-21', 'DD-MON-YY')) and (to_date(Время_отл, 'HH24:MI') > to_date('13:00', 'HH24:MI'))))

UNION

SELECT 'Общее число:', to_char(COUNT(ID_сам))

FROM Рас_стоян

WHERE

(((Дата_прил = to_date('10-МАЙ-21', 'DD-MON-YY')) and (to_date(Время_прил, 'HH24:MI') < to_date('15:00', 'HH24:MI'))) or

((to_date('10-МАЙ-21', 'DD-MON-YY') > Дата_прил) AND (to_date('10-МАЙ-21', 'DD-MON-YY') < Дата_отл)) or

((Дата_отл = to_date('10-МАЙ-21', 'DD-MON-YY')) and (to_date(Время_отл, 'HH24:MI') > to_date('13:00', 'HH24:MI'))));

Результат данного кода представлен на рисунке 44:

Рисунок 44 – результат основного запроса №4

Текст основного запроса №5:

Вывести перечень сотрудников, получающих пособие на детей, оклад, размер этого пособия и общая сумма пособия по всем сотрудникам.

Код запроса:

SELECT Сотр.Имя, Сотр.Фам, Долж.Оклад, Долж.Оклад*0.1 AS ПОСОБИЕ

FROM Сотр

LEFT JOIN Долж on Сотр.Назв_долж = Долж.Назв_долж

RIGHT JOIN Дети_Сотр on Сотр.ID_сотр = Дети_Сотр.ID_сотр

UNION

SELECT 'Общая сумма', 'пособия:', null, SUM(Долж.Оклад*0.1)

FROM Сотр

LEFT JOIN Долж on Сотр.Назв_долж = Долж.Назв_долж

RIGHT JOIN Дети_Сотр on Сотр.ID_сотр = Дети_Сотр.ID_сотр;

Результат данного кода представлен на рисунке 45:

Рисунок 45 – результат основного запроса №5