Добавил:
t.me Установите расширение 'SyncShare' для решения тестов в LMS (Moodle): https://syncshare.naloaty.me/ . На всякий лучше отключить блокировщик рекламы с ним. || Как пользоваться ChatGPT в России: https://habr.com/ru/articles/704600/ || Также можно с VPNом заходить в bing.com через Edge браузер и общаться с Microsoft Bing Chat, но в последнее время они форсят Copilot и он мне меньше нравится. || Студент-заочник ГУАП, группа Z9411. Ещё учусь на 5-ом курсе 'Прикладной информатики' (09.03.03). || Если мой материал вам помог - можете написать мне 'Спасибо', мне будет очень приятно :) Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3 курс 2 семестр / Z9411_КафкаРС_БД_ЛР3.docx
Скачиваний:
6
Добавлен:
24.10.2023
Размер:
1.36 Mб
Скачать
  1. Выполнение инструкций after table.

    1. Меняем тип данных столбца.

Так получилось, что в таблице «Лист лечения» - столбец «Температура» было указано значение «2,1», из-за чего температуру выше 9.9 градусов было нельзя записать – возникала ошибка: «Error Code: 1264. Out of range value for column 'temp' at row 1.»

С помощью AFTER TABLE поменяем тип колонки и увеличим возможный ввод:

ALTER TABLE `hospital`.`treatment_list`

CHANGE COLUMN `temp` `temp` DECIMAL(3,1) NULL DEFAULT NULL ;

Результат изменения типа мы можем посмотреть в информации о таблице «treatment_list» в Workbench (рис.20).

Рисунок 20 – Информация о таблице «treatment_list»

    1. Добавление столбца в таблицу.

Для второго примера решил добавить новый столбец в таблицу «Врачи». Пускай новый столбец будет содержать информацию о поле врачей. Назовём его «gender» и используем следующую команду:

ALTER TABLE `hospital`.`doctors`

ADD COLUMN `gender` VARCHAR(1) NULL AFTER `address`;

Теперь при просмотре информации о таблице «doctors» мы можем увидеть столбец «gender», который был добавлен (рис.21).

Рисунок 21 – Добавление столбца в таблицу «doctors»

    1. Удаление столбца из таблицы.

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

ALTER TABLE `hospital`.`doctors`

DROP COLUMN `gender`;

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

Рисунок 22 – Удаление столбца из таблицы «doctors»

  1. Заполнение таблиц данными.

Таблицы добавил строки с данными.

    1. Запрос для ввода данных в таблицу «Врачи»:

USE hospital;

INSERT INTO doctors values (1, "Сергей", "Боткин", "Петрович", "Терапевт", "5 лет", "Высшая категория", "г. Видное, пр. Ленина, 84");

INSERT INTO doctors values (2, "Николай", "Пирогов", "Иванович", "Хирург", "9 лет", "Вторая категория", "г. Люберцы, спуск Балканская, 66");

INSERT INTO doctors values (3, "Николай", "Склифосовский", "Васильевич", "Хирург", "6 лет", "Высшая категория", "г. Лотошино, пл. Ленина, 03");

INSERT INTO doctors values (4, "Иван", "Павлов", "Петрович", "Невролог", "5 лет", "Первая категория", "г. Домодедово, въезд Косиора, 91");

INSERT INTO doctors values (5, "Федор", "Гааз", "Петрович", "Терапевт", "14 лет", "Первая категория", "г. Пушкино, пр. Домодедовская, 70");

INSERT INTO doctors values (6, "Владимир", "Бехтерев", "Михайлович", "Психиатр", "20 лет", "Высшая категория", "г. Пушкино, въезд Будапештсткая, 12");

SELECT * FROM hospital.doctors;

Результат выполнения запроса представлен на рисунке 23:

Рисунок 23 – Заполненная таблица «Врачи» в Workbench

    1. Запрос для ввода данных в таблицу «Пациенты»:

USE hospital;

INSERT INTO patients values (1, "Таисия", "Трофимова", "Тимофеевна", "бульвар Домодедовская, 32", "Москва", 57, "Ж");

INSERT INTO patients values (2, "Софья", "Иванова", "Саввична", "спуск Ломоносова, 70", "Москва", 34, "Ж");

INSERT INTO patients values (3, "Дарья", "Ефимова", "Никитична", "пер. Космонавтов, 85", "Санкт-Петербург", 63, "Ж");

INSERT INTO patients values (4, "Георгий", "Карасев", "Миронович", "пер. Будапештсткая, 51", "Санкт-Петербург", 56, "М");

INSERT INTO patients values (5, "Илья", "Любимов", "Дмитриевич", "спуск Будапештсткая, 11", "Санкт-Петербург", 35, "М");

INSERT INTO patients values (6, "Никита", "Поляков", "Артёмович", "ул. Гагарина, 20", "Москва", 95, "М");

INSERT INTO patients values (7, "Владислав", "Попов", "Игоревич", "пр. Косиора, 83", "Москва", 86, "М");

INSERT INTO patients values (8, "Полина", "Соколова", "Андреевна", "пл. Ленина, 95", "Санкт-Петербург", 23, "Ж");

INSERT INTO patients values (9, "Егор", "Поляков", "Демидович", "шоссе Балканская, 47", "Москва", 18, "М");

INSERT INTO patients values (10, "Александра", "Быкова", "Кирилловна", "въезд Гоголя, 37", "Санкт-Петербург", 45, "Ж");

INSERT INTO patients values (11, "Василий", "Иванов", "Петрович", "пр. Славы, 69", "Санкт-Петербург", 27, "М");

INSERT INTO patients values (12, "Светлана", "Ищенко", "Игоревна", "бульвар Балканская, 49", "Санкт-Петербург", 53, "Ж");

SELECT * FROM hospital.patients;

Результат выполнения запроса представлен на рисунке 24:

Рисунок 24 – Заполненная таблица «Пациенты» в Workbench

    1. Запрос для ввода данных в таблицу «Операции»:

USE hospital;

INSERT INTO operations values (1, 3, 1, "Удаление аппендицита", "2020-10-29", "Успешно.");

INSERT INTO operations values (2, 2, 3, "Удаление опухоли", "2021-04-23", "Успешно.");

INSERT INTO operations values (3, 2, 10, "Удаление опухоли", "2021-10-24", "Успешно.");

INSERT INTO operations values (4, 2, 3, "Удаление опухоли", "2021-12-07", "Успешно.");

INSERT INTO operations values (5, 3, 1, "Удаление опухоли", "2022-01-15", "Успешно.");

INSERT INTO operations values (6, 3, 12, "Удаление опухоли", "2022-01-15", "Успешно.");

SELECT * FROM hospital.operations;

Результат выполнения запроса представлен на рисунке 25:

Рисунок 25 – Заполненная таблица «Операции» в Workbench

    1. Запрос для ввода данных в таблицу «История болезней»:

USE hospital;

INSERT INTO medical_history (id_hist, id_pat, id_doc, diagnosis, disease_date, cure_date, treatment_type) values (1, 5, 5, "Бронхит", "2020-10-25", "2020-11-04", "Применение лекарств.");

INSERT INTO medical_history values (2, 1, 3, "Аппендицит", "2020-10-28", "2020-11-10", "Операция по удалению.", 1);

INSERT INTO medical_history (id_hist, id_pat, id_doc, diagnosis, disease_date, cure_date, treatment_type) values (3, 9, 1, "ОРВИ", "2020-11-12", "2020-11-29", "Применение лекарств.");

INSERT INTO medical_history values (4, 3, 2, "Опухоль", "2021-04-21", "2021-04-28", "Операция по удалению.", 2);

INSERT INTO medical_history (id_hist, id_pat, id_doc, diagnosis, disease_date, cure_date, treatment_type) values (5, 4, 4, "Бессоница", "2021-05-03", "2021-05-13", "Применение лекарств.");

INSERT INTO medical_history (id_hist, id_pat, id_doc, diagnosis, disease_date, cure_date, treatment_type) values (6, 2, 5, "Пневмония", "2021-05-17", "2021-05-30", "Применение лекарств.");

INSERT INTO medical_history (id_hist, id_pat, id_doc, diagnosis, disease_date, cure_date, treatment_type) values (7, 6, 6, "Булимия", "2021-05-25", "2021-06-02", "Применение лекарств.");

INSERT INTO medical_history (id_hist, id_pat, id_doc, diagnosis, disease_date, cure_date, treatment_type) values (8, 7, 3, "Гангрена", "2021-07-30", "2021-08-07", "Применение лекарств.");

INSERT INTO medical_history values (9, 10, 2, "Опухоль", "2021-10-24", "2021-10-30", "Операция по удалению.", 3);

INSERT INTO medical_history (id_hist, id_pat, id_doc, diagnosis, disease_date, cure_date, treatment_type) values (10, 8, 4, "Тик", "2021-11-23", "2021-12-01", "Применение лекарств.");

INSERT INTO medical_history (id_hist, id_pat, id_doc, diagnosis, disease_date, cure_date, treatment_type) values (11, 8, 6, "Булимия", "2021-11-29", "2021-12-06", "Применение лекарств.");

INSERT INTO medical_history (id_hist, id_pat, id_doc, diagnosis, disease_date, cure_date, treatment_type) values (12, 1, 1, "ОРВИ", "2021-11-30", "2021-12-12", "Применение лекарств.");

INSERT INTO medical_history (id_hist, id_pat, id_doc, diagnosis, disease_date, cure_date, treatment_type) values (13, 5, 5, "ОРВИ", "2021-12-02", "2021-12-26", "Применение лекарств.");

INSERT INTO medical_history values (14, 3, 2, "Опухоль", "2021-12-06", "2021-12-13", "Операция по удалению.", 4);

INSERT INTO medical_history (id_hist, id_pat, id_doc, diagnosis, disease_date, cure_date, treatment_type) values (15, 9, 1, "ОРВИ", "2021-12-15", "2021-12-30", "Применение лекарств.");

INSERT INTO medical_history (id_hist, id_pat, id_doc, diagnosis, disease_date, cure_date, treatment_type) values (16, 10, 2, "Гангрена", "2021-12-17", "2021-12-20", "Применение лекарств.");

INSERT INTO medical_history (id_hist, id_pat, id_doc, diagnosis, disease_date, cure_date, treatment_type) values (17, 2, 4, "Бессоница", "2021-12-23", "2021-10-15", "Применение лекарств.");

INSERT INTO medical_history (id_hist, id_pat, id_doc, diagnosis, disease_date, cure_date, treatment_type) values (18, 2, 3, "Гангрена", "2022-01-06", "2022-01-12", "Применение лекарств.");

INSERT INTO medical_history values (19, 1, 3, "Опухоль", "2022-01-14", "2022-02-08", "Операция по удалению.", 5);

INSERT INTO medical_history values (20, 12, 3, "Опухоль", "2022-01-14", "2022-01-20", "Операция по удалению.", 6);

SELECT * FROM hospital.medical_history;

Результат выполнения запроса представлен на рисунке 26:

Рисунок 26 – Заполненная таблица «История болезней» в Workbench

    1. Запрос для ввода данных в таблицу «Лист лечения»:

USE hospital;

INSERT INTO treatment_list values (1, 1, "2020-10-25", "Лекарство от Бронхита", 37.3, "120 70", "Будет жить");

INSERT INTO treatment_list values (2, 2, "2020-10-28", "Обезболивающее", 36.6, "119 72", "Будет жить");

INSERT INTO treatment_list values (3, 3, "2020-11-12", "Лекарство от ОРВИ", 35.9, "145 85", "Будет жить");

INSERT INTO treatment_list values (4, 4, "2021-04-21", "Обезболивающее", 38.8, "139 80", "Будет жить");

INSERT INTO treatment_list values (5, 5, "2021-05-03", "Лекарство от Бессоницы", 37.9, "90 70", "Будет жить");

INSERT INTO treatment_list values (6, 6, "2021-05-17", "Лекарство от Пневмонии", 36.8, "100 59", "Будет жить");

INSERT INTO treatment_list values (7, 7, "2021-05-25", "Лекарство от Булимии", 36.0, "160 96", "Будет жить");

INSERT INTO treatment_list values (8, 8, "2021-07-30", "Лекарство от Гангрены", 39.2, "144 68", "Будет жить");

INSERT INTO treatment_list values (9, 9, "2021-10-24", "Обезболивающее", 38.0, "128 98", "Будет жить");

INSERT INTO treatment_list values (10, 10, "2021-11-23", "Лекарство от Тика", 36.2, "120 70", "Будет жить");

INSERT INTO treatment_list values (11, 11, "2021-11-29", "Лекарство от Булимии", 36.3, "136 87", "Будет жить");

INSERT INTO treatment_list values (12, 12, "2021-11-30", "Лекарство от ОРВИ", 36.6, "120 60", "Будет жить");

INSERT INTO treatment_list values (13, 13, "2021-12-02", "Лекарство от ОРВИ", 37.0, "134 74", "Будет жить");

INSERT INTO treatment_list values (14, 14, "2021-12-06", "Обезболивающее", 37.9, "140 85", "Будет жить");

INSERT INTO treatment_list values (15, 15, "2021-12-15", "Лекарство от ОРВИ", 38.0, "129 69", "Будет жить");

INSERT INTO treatment_list values (16, 16, "2021-12-17", "Лекарство от Гангрены", 36.8, "120 71", "Будет жить");

INSERT INTO treatment_list values (17, 17, "2021-12-23", "Лекарство от Бессоницы", 36.9, "119 64", "Будет жить");

INSERT INTO treatment_list values (18, 18, "2022-01-06", "Лекарство от Гангрены", 39.4, "140 70", "Будет жить");

INSERT INTO treatment_list values (19, 19, "2022-01-14", "Обезболивающее", 36.6, "135 65", "Будет жить");

INSERT INTO treatment_list values (20, 20, "2022-01-14", "Обезболивающее", 37.1, "120 92", "Будет жить");

SELECT * FROM hospital.treatment_list;

Результат выполнения запроса представлен на рисунке 27:

Рисунок 27 – Заполненная таблица «Лист лечения» в Workbench

Все таблицы заполнены данными.

Вывод

Я изучил операции по созданию и заполнению базы данных на сервере MySQL.

Успешно создал новую БД на сервере MySQL, согласно своему варианту задания. С помощью созданной схемы данных смог завершить лабораторную работу №1, поскольку скриншоты из приложения Workbench были там нужны.

Построение БД через модель позволяет структурировать и создавать базы гораздо легче и нагляднее. Интерфейс интуитивно понятный и подскажет если где-то в коде есть ошибки.

Однако, пока что заполнение таблиц происходит точно так же, как если бы их заполняли и через MySQL Command Line Client. Возможно, я ещё не изучил как это можно сделать в Workbench, а, возможно, такой функции в нём нет. В любом случае Workbench значительно облегчает работу с БД.

Также отмечу, что модифицирование таблиц командой AFTER TABLE можно сделать и без ввода вручную. Для этого в схемах нужно открыть необходимую таблицу для модификации и нажать на знак гаечного ключа. Откроется окно для редактирования таблицы. После внесения изменений и попытки закрыть окно, Workbench автоматически сгенерирует необходимый код с AFTER TABLE и предложит его применить, предварительно спросив подтверждения. Мне эта функция понравилась, поскольку перед этим вручную написанный код не работал и справки из интернета не помогали.

Считаю, что лабораторная работа выполнена в полном объёме.

Соседние файлы в папке 3 курс 2 семестр