
всем здарова / задания лаб / 5 лаба / лр 5 бд
.docxЛабораторная работа 5
«Операторы модификации базы данных»
Практическая часть
Вариант выбирается в соответствии с формулой: N = (Nв списке mod 10) + 1.
Задание 1.
Напишите запрос в соответствии с вашим вариантом
№ |
Условие запроса |
1 |
Переведите всех учащихся 3-го курса на 4-й, изменив номер группы |
UPDATE students
SET group_number = regexp_replace(group_number, '(-3)', '-4')
WHERE group_number LIKE '%-3%';
Где
regexp_replace(group_number, '(-3)', '-4'): регулярное выражение ищет в строке группу с дефисом и цифрой "3" (например, "ИВТ-3", "ПИН-3") и заменяет "3" на "4".
WHERE group_number LIKE '%-3%': условие для обновления только тех записей, где номер группы содержит "-3", чтобы выбрать все группы третьего курса.
Ни одного… вымерли братки
Задание 2.
Напишите запрос в соответствии с вашим вариантом
№ |
Условие запроса |
1 |
Заполните поле, содержащее цвет студенческого билета следующим образом: студенты с четными номерами (кроме оканчивающихся на 0) получают синий студенческий, нечетными – белый, оканчивающиеся на 0 – зеленый. |
UPDATE students
SET ticket_color =
CASE
WHEN student_id % 10 = 0 THEN 'green' -- Номера, оканчивающиеся на 0
WHEN student_id % 2 = 0 THEN 'blue' -- Четные номера, не оканчивающиеся на 0
WHEN student_id % 10 = 0 THEN 'green' -- Номера, оканчивающиеся на 0
ELSE 'white' -- Нечетные номера
END;
2 раза сделал проверку, чтобы наверняка
Все ок
Задание 3.
В зависимости от варианта, добавьте значения в исправленную вами базу данных в прошлой лабораторной работе. В каждую из таблиц необходимо добавить не менее 10 осмысленных значений.
Предположим
Мест практики +
INSERT INTO practices (practice_id, company_name, location, supervisor_name, contact_info)
VALUES
(uuid_generate_v4(), 'Компания 1', 'Москва', 'Иван Иванов', 'ivanov@company1.ru'),
(uuid_generate_v4(), 'Компания 2', 'Санкт-Петербург', 'Мария Смирнова', 'smirnova@company2.ru'),
(uuid_generate_v4(), 'Компания 3', 'Казань', 'Петр Петров', 'petrov@company3.ru'),
(uuid_generate_v4(), 'Компания 4', 'Новосибирск', 'Елена Кузнецова', 'kuznecova@company4.ru'),
(uuid_generate_v4(), 'Компания 5', 'Екатеринбург', 'Сергей Волков', 'volkov@company5.ru'),
(uuid_generate_v4(), 'Компания 6', 'Воронеж', 'Александра Фролова', 'frolova@company6.ru'),
(uuid_generate_v4(), 'Компания 7', 'Краснодар', 'Ольга Попова', 'popova@company7.ru'),
(uuid_generate_v4(), 'Компания 8', 'Уфа', 'Иван Михайлов', 'mihaylov@company8.ru'),
(uuid_generate_v4(), 'Компания 9', 'Пермь', 'Наталья Сидорова', 'sidorova@company9.ru'),
(uuid_generate_v4(), 'Компания 10', 'Тюмень', 'Андрей Козлов', 'kozlov@company10.ru');
Добавление информации о прикреплении студентов к практикам:
INSERT INTO student_practices (student_id, practice_id, start_date, end_date)
VALUES
(812507, (SELECT practice_id FROM practices WHERE company_name = 'Компания 1'), '2024-06-01', '2024-08-31'),
(812513, (SELECT practice_id FROM practices WHERE company_name = 'Компания 2'), '2024-06-01', '2024-08-31'),
(812640, (SELECT practice_id FROM practices WHERE company_name = 'Компания 3'), '2024-06-01', '2024-08-31'),
(812850, (SELECT practice_id FROM practices WHERE company_name = 'Компания 4'), '2024-06-01', '2024-08-31'),
(812872, (SELECT practice_id FROM practices WHERE company_name = 'Компания 5'), '2024-06-01', '2024-08-31'),
(813156, (SELECT practice_id FROM practices WHERE company_name = 'Компания 6'), '2024-06-01', '2024-08-31'),
(813184, (SELECT practice_id FROM practices WHERE company_name = 'Компания 7'), '2024-06-01', '2024-08-31'),
(813265, (SELECT practice_id FROM practices WHERE company_name = 'Компания 8'), '2024-06-01', '2024-08-31'),
(813321, (SELECT practice_id FROM practices WHERE company_name = 'Компания 9'), '2024-06-01', '2024-08-31'),
(813772, (SELECT practice_id FROM practices WHERE company_name = 'Компания 10'), '2024-06-01', '2024-08-31');
Взял данные первых 10 студентов из students
812507 "Мамаева" "Клеопатра" "Львовна" "ИТД-41" "2003-03-28" "MamaevaKleopatra@miet.ru"
812513 "Бубнова" "Анна" "Трифоновна" "ИВТ-23" "2004-02-17" "BubnovaAnna@miet.ru"
812640 "Иртеньев" "Владимир" "Петрович" "ИТД-13" "2005-06-10" "IrtenevVladimir@miet.ru"
812850 "Бабичев" "Иван" "null" "ИВТ-43" "2002-02-10" "BabichevIvan@miet.ru"
812872 "Худяков" "Андрей" "Львович" "ИБ-21" "2004-03-28" "HudjakovAndrej@miet.ru"
813156 "Верховенский" "Петр" "Степанович" "ИВТ-11" "2005-12-15" "VerhovenskijPetr@miet.ru"
813184 "Бальзаминов" "Михайло" "Дмитрич" "ИТД-42" "2002-05-10" "BalzaminovMihajlo@miet.ru"
813265 "Лисович" "Василий" "Иванович" "ИВТ-41" "2002-02-28" "LisovichVasilij@miet.ru"
813321 "Карамазова" "Софья" "Ивановна" "ИВТ-13" "2005-08-13" "KaramazovaSofja@miet.ru"
813772 "Григорьев" "Даниил" "Иванович" "ИБ-21" "2003-02-16" "GrigorevDaniil@miet.ru"
Добавление отчётов по практике:
INSERT INTO practice_reports (report_id, student_id, practice_id, report_content, submission_date)
VALUES
(uuid_generate_v4(), 812507, (SELECT practice_id FROM practices WHERE company_name = 'Компания 1'), 'Отчет о практике в Компании 1', '2024-09-01'),
(uuid_generate_v4(), 812513, (SELECT practice_id FROM practices WHERE company_name = 'Компания 2'), 'Отчет о практике в Компании 2', '2024-09-01'),
(uuid_generate_v4(), 812640, (SELECT practice_id FROM practices WHERE company_name = 'Компания 3'), 'Отчет о практике в Компании 3', '2024-09-01'),
(uuid_generate_v4(), 812850, (SELECT practice_id FROM practices WHERE company_name = 'Компания 4'), 'Отчет о практике в Компании 4', '2024-09-01'),
(uuid_generate_v4(), 812872, (SELECT practice_id FROM practices WHERE company_name = 'Компания 5'), 'Отчет о практике в Компании 5', '2024-09-01'),
(uuid_generate_v4(), 813156, (SELECT practice_id FROM practices WHERE company_name = 'Компания 6'), 'Отчет о практике в Компании 6', '2024-09-01'),
(uuid_generate_v4(), 813184, (SELECT practice_id FROM practices WHERE company_name = 'Компания 7'), 'Отчет о практике в Компании 7', '2024-09-01'),
(uuid_generate_v4(), 813265, (SELECT practice_id FROM practices WHERE company_name = 'Компания 8'), 'Отчет о практике в Компании 8', '2024-09-01'),
(uuid_generate_v4(), 813321, (SELECT practice_id FROM practices WHERE company_name = 'Компания 9'), 'Отчет о практике в Компании 9', '2024-09-01'),
(uuid_generate_v4(), 813772, (SELECT practice_id FROM practices WHERE company_name = 'Компания 10'), 'Отчет о практике в Компании 10', '2024-09-01');
ПРУФЫ