
Чурилов / 3 курс 2 семестр / Чурилов_БД_Z9411_ЛР4
.docxМИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное автономное образовательное учреждение высшего образования
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»
ИНСТИТУТ НЕПРЕРЫВНОГО И ДИСТАНЦИОННОГО ОБРАЗОВАНИЯ
Кафедра проблемно-ориентированных вычислительных комплексов
ОЦЕНКА
ПРЕПОДАВАТЕЛЬ
кандидат техн. наук _________________ Е.Л. Турнецкая
подпись, дата
ЛАБОРАТОРНАЯ РАБОТА №4
Создание запросов на сервере MySQL
по дисциплине «Базы данных»
РАБОТУ ВЫПОЛНИЛ
СТУДЕНТ ГР. Z9411 __________________ А.С. Чурилов
подпись, дата
Студенческий билет № 2019/3684
Санкт-Петербург
2022г.
Оглавление
1. Цель работы 3
2. Создание однотабличного запроса 3
3. Оформление запросов к нескольким таблицам 4
4. Реализация запроса на обновление данных 5
5. Реализация запроса на удаление данных 6
Заключение 7
Список источников 8
Цель работы
Цель лабораторной работы: изучить инструкции языка SQL, манипулирующие табличными данными.
Создание однотабличного запроса
Для выполнения работы воспользуемся базой данных DBtheatre, характеризующей информационную систему «Театр». Соответствующая даталогическая модель представлена на рисунке 1.
|
Рисунок 1 – Даталогическая модель информационной системы «Театра» |
Запрос №1: выбрать всех сотрудников театра, рабочий стаж которых превышает 10 лет, и расположить найденные записи в порядке убывания.
Для выполнения данного запроса обратимся к таблице employees и, в частности, к полю exp_emp.
На рисунке 2 приведен перечень всех записей таблицы employees.
|
Рисунок 2 – Записи таблицы employees |
В среде разработки пропишем следующий программный код:
select * from employees
where exp_emp > 10
order by exp_emp desc;
Отобранные по запросу и отсортированные строки представлены на рисунке 3.
|
Рисунок 3 – Результат отбора по запросу №1 |
Оформление запросов к нескольким таблицам
Запрос №2: вывести информацию о жанре и типе спектаклей, которые будут представлены на гастролях в городах Сочи и Краснодар; также необходимо произвести сортировку записей по названию представления.
Для выполнения данного запроса обратимся к столбцам name_perf, genre_perf и type_perf таблицы performances и к полю town_tour таблицы timetable.
На рисунке 4 приведен перечень всех записей таблицы timetable.
|
Рисунок 4 – Записи таблицы timetable |
В среде разработки пропишем следующий программный код:
select performances.name_perf, performances.genre_perf, performances.type_perf, timetable.town_tour
from performances, timetable
where (timetable.town_tour = “Sochi” or timetable.town_tour = “Krasnodar”) and performances.name_perf = timetable.name_perf_tour
order by performances.name_perf;
Отобранные по запросу и отсортированные строки представлены на рисунке 5.
|
Рисунок 5 – Результат отбора по запросу №2 |
Запрос №3: выбрать среди спектаклей все представления кроме мюзиклов, выполнить группировку по жанрам и внутри каждого определить среднюю стоимость билета, произвести сортировку записей по найденным средним значениям в порядке возрастания.
Для выполнения данного запроса обратимся к столбцам genre_perf таблицы performances и к полю cost_ticket таблицы repertoire.
На рисунке 6 приведен перечень всех записей таблицы repertoire.
|
Рисунок 6 – Записи таблицы repertoire |
В среде разработки пропишем следующий программный код:
select performances.genre_perf, avg(repertoire.cost_ticket) as avg_cost_genre
from performances, repertoire
where performances.genre_perf != “Musical” and performances.name_perf = repertoire.name_perf_repert
group by performances.genre_perf
order by avg_cost_genre;
Отобранные по запросу и отсортированные строки представлены на рисунке 7.
|
Рисунок 7 – Результат отбора по запросу №3 |
Реализация запроса на обновление данных
Запрос №4: в расписании гастролей изменить место выступления с города Сочи на соседний город Адлер.
Для выполнения данного запроса обратимся к атрибуту town_tour таблицы timetable.
На рисунке 8 приведен перечень всех записей таблицы timetable.
|
Рисунок 8 – Записи таблицы timetable |
В среде разработки пропишем следующий программный код:
update timetable
set town_tour = “Adler”
where town_tour = “Sochi”;
select * from timetable;
Обновленные по запросу строки представлены на рисунке 9.
|
Рисунок 9 – Результат обновления по запросу №4 |
Реализация запроса на удаление данных
Запрос №5: удалить всю информацию о труппе, индивидуальный номер которой равен 5.
Для выполнения данного запроса обратимся к атрибуту id_troupe таблицы troupes.
На рисунке 10 приведен перечень всех записей таблицы troupes.
|
Рисунок 10 – Записи таблицы troupes |
В среде разработки пропишем следующий программный код:
delete from troupes
where id_troupe = 5;
select * from troupes;
На рисунке 11 представлены строки таблицы после удаления тех, что заданы в запросе.
|
Рисунок 11 – Результат удаления по запросу №5 |
Заключение
В результате выполнения лабораторной работы были реализованы следующие задачи:
изучены инструкции языка SQL, позволяющие задавать однотабличные запросы;
получены практические навыки оформления запросов к нескольким таблицам с последующими группировкой и сортировкой данных;
приобретены знания по созданию запросов, дающих возможность менять данные внутри таблиц.
Список источников
Кригель, А. SQL. Библия пользователя. [Текст] / А. Кригель. – Москва: Вильямс, 2010. – 752 с.
Кузин, А.В. Разработка баз данных в системе Microsoft Access. Учебник. [Текст] / А.В. Кузин. – Санкт-Петербург: Форум, 2021. – 224 с.
Кумскова, И.А. Базы данных. Учебник. [Текст] / И.А. Кумскова. – Москва: Кнорус, 2021. – 400 с.
Свиридова, М.Ю. Система управления базами данных Access. [Текст] / М.Ю. Свиридова. – Москва: Academia, 2010. – 192 с.
Гурвиц, Г.А. Microsoft Access 2021. Разработка приложений на реальном примере. [Текст] / Г.А. Гурвиц. – Москва: Лань, 2021. – 502 с.