1
.docxГУАП
КАФЕДРА № 41
ОТЧЕТ
ЗАЩИЩЕН С ОЦЕНКОЙ
ПРЕПОДАВАТЕЛЬ
ассистент |
|
|
|
М. С. Иванова |
должность, уч. степень, звание |
|
подпись, дата |
|
инициалы, фамилия |
ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ №1 |
Создание базы данных |
по курсу: ПРОЕКТНЫЙ ПРАКТИКУМ |
|
|
РАБОТУ ВЫПОЛНИЛА СТУДЕНТКА ГР. |
4716 |
|
|
|
Е.А. Шуб С.А. Янышева |
|
|
|
подпись, дата |
|
инициалы, фамилия |
Санкт-Петербург
2021
Лабораторная работа № 1
Создание базы данных
Цель работы
Создать БД на сервере, разработать необходимые запросы и хранимые процедуры.
Выполнение работы
На сервере SQL, посредством MySQL Workbench, создана база данных для курсов по подготовки к ЕГЭ, таблицы со связью между ними и выполнены 3 инструкции ALTER TABLE. На рисунке 1 приведена структура базы данных.
Листинг создания таблиц
use lr_2; create table discipline ( DI_NO int NOT NULL primary key, discipline char(20));
create table teachers ( TE_NO int NOT NULL primary key, FIO char(40) NOT null, DATEb date, ADDR char(50), PHONE char(11), DI_NO int NOT NULL, foreign key (DI_NO) references discipline (DI_NO) on update cascade);
create table parents ( PA_NO int NOT NULL primary key, FIO char(40) NOT null, DATEb date, ADDR char(50), PHONE char(11));
create table students ( ST_NO int NOT NULL primary key, FIO char(40) NOT null, DATEb date, ADDR char(50), PHONE char(11), PA_NO int NOT NULL, foreign key (PA_NO) references parents (PA_NO) on update cascade);
create table classes ( CL_NO int NOT NULL primary key, TE_NO int NOT NULL, class int NOT NULL, foreign key (TE_NO) references teachers (TE_NO) on update cascade);
create table listt ( CL_NO int NOT NULL, ST_NO int NOT NULL, foreign key (CL_NO) references classes (CL_NO) on update cascade, foreign key (ST_NO) references students (ST_NO) on update cascade);
create table yslugi ( YS_NO int NOT NULL primary key, CLASSES_AMOUNT tinyint, SUMM smallint, PA_NO int NOT NULL, foreign key (PA_NO) references parents (PA_NO) on update cascade, DI_NO int NOT NULL, foreign key (DI_NO) references discipline (DI_NO) on update cascade); |
Рисунок 1 – Структура базы данных
Созданные таблицы заполнены правдоподобными данными, что продемонстрировано на рисунке 2.
Листинг заполнения таблиц
USE lr_2; insert into discipline values ('1', 'Algebra'); insert into discipline values ('2', 'Biology'); insert into discipline values ('3', 'Drawing'); insert into discipline values ('4', 'Chemistry'); insert into discipline values ('5', 'Geography'); insert into discipline values ('6', 'History');
insert into teachers values ('1', 'Shyb E.A.', '10.10.85', '8-ia Soveyskaia', '89113212233', '2'); insert into teachers values ('2', 'Ianysheva S.A.', '10.03.97', 'Polevaia', '89113212244', '5'); insert into teachers values ('3', 'Petrova U.D.', '15.06.77', 'Mira', '89113216243', '4'); insert into teachers values ('4', 'Kaz I.A.', '10.11.86', 'Lygovaia', '89113632786', '1'); insert into teachers values ('5', 'Vagna E.A.', '10.04.87', 'Planovaia', '89113287664', '2'); insert into teachers values ('6', 'Smirnova L.D.', '13.06.97', 'Marshala', '89113112348', '6');
insert into parents values ('1', 'Borisova', '1-ia Soveyskaia', '89113212233'); insert into parents values ('2', 'Stepanova', '2-ia Soveyskaia', '89123212244'); insert into parents values ('3', 'Petrova', '3-ia Soveyskaia', '89223216243'); insert into parents values ('4', 'Navalny', '4-ia Soveyskaia', '89123632786'); insert into parents values ('5', 'Varlamov', '5-ia Soveyskaia', '89113287664'); insert into parents values ('6', 'Pytina', '6-ia Soveyskaia', '89113112348');
insert into students values ('1', 'Borisova A.A.','10.03.10', '1-ia Soveyskaia', '89113212233', '1'); insert into students values ('2', 'Stepanova S.E.', '10.04.11','2-ia Soveyskaia', '89123212244', '2'); insert into students values ('3', 'Petrova M.S.', '10.05.11','3-ia Soveyskaia', '89223216243', '3'); insert into students values ('4', 'Navalny O.A', '10.07.11','4-ia Soveyskaia', '89123632786', '4'); insert into students values ('5', 'Navalny M.A.', '10.09.12','4-ia Soveyskaia', '89123632786', '4'); insert into students values ('6', 'Varlamov U.I.', '10.04.12','5-ia Soveyskaia', '89113287664', '5'); insert into students values ('7', 'Varlamov V.I.', '10.05.10','5-ia Soveyskaia', '89113287664', '5'); insert into students values ('8', 'Pytina O.V.', '10.10.12','6-ia Soveyskaia', '89113112348', '6');
insert into classes values ('1', '1', '4a'); insert into classes values ('2', '2', '3a'); insert into classes values ('3', '5', '2a'); insert into classes values ('4', '3', '1a');
insert into listt values ('2', '1'); insert into listt values ('2', '7'); insert into listt values ('3', '2'); insert into listt values ('3', '3'); insert into listt values ('3', '4'); insert into listt values ('4', '6'); insert into listt values ('4', '5'); insert into listt values ('4', '8'); |
Рисунок 2 – Заполненная таблица discipline в Workbench
Рисунок 3 – Заполненная таблица teachers в Workbench
Рисунок 4 – Заполненная таблица parents в Workbench
Рисунок 5 – Заполненная таблица students в Workbench
Рисунок 6 – Заполненная таблица classes в Workbench
Рисунок 7 – Заполненная таблица listt в Workbench
Рисунок 8 – Заполненная таблица yslugi в Workbench
Создан однотабличный запрос на выборку с условием фильтрации. На рисунках 9 представлен вывод программы.
Рисунок 9 – Запрос 1
Запросs на выборку к нескольким таблицам с условием фильтрации, сортировкой и группировкой (рисунок 10-11).
Рисунок 10 – Запрос 2
Рисунок 11 – Запрос 3
Запросы на добавление, обновление и удаление данных (рисунок 12-14).
Рисунок 12 – Запрос на добавление
Рисунок 13 – Запрос на обновление данных
Рисунок 14 – Запрос на удаление данных
Постоянные клиенты (купившие 2 и более раз курсы) получают скидку 15%. Разработана процедура проверки скидки клиента. На рисунке 15 и 16 приведён результат работы процедуры.
Листинг SQL-кода:
CREATE DEFINER=`root`@`localhost` PROCEDURE `discont`(in id int, out discont_value double) begin set @x = (select count(PA_NO) from yslugi Where PA_NO = id); if (@x >= 2) then set discont_value = 0.15; else set discont_value = 0; end if; end |
Рисунок 15 – Вызов процедуры
Рисунок 16 – Вывод результата работы процедуры
Вывод
Создана БД на сервере, разработаны необходимые запросы и хранимые процедуры.