Лабораторные работы. Дятлов / Отчет Базы данных №5
.pdfМинистерство цифрового развития, связи и массовых коммуникаций Российской Федерации
Федеральное государственное бюджетное образовательное учреждение Высшего образования «Санкт-Петербургский государственный университет телекоммуникаций им. Проф. М. А. Бонч-Бруевича» (СПбГУТ)
Факультет Информационных технологий и программной инженерии
Кафедра Программной инженерии
Лабораторная работа
По дисциплине: База данных
Выполнил студент: Яковлев М. А. ИКПИ-32
Принял работу: Дятлов Д. А.
Дата выполнения: «18» октября 2025 г.
Санкт-Петербург
2025 г.
Цель работы
Цель работы – получение практических навыков в работе со встроенными функциями на языке SQL.
Ход выполнения
Создана процедура:
DELIMITER //
CREATE PROCEDURE university.createTask (
IN tname VARCHAR(45),
IN tdate DATETIME,
IN uid INT,
OUT muchdays VARCHAR(45)
)
BEGIN
DECLARE tmonth VARCHAR(45);
SELECT CONCAT('Task month is: ',
(CASE MONTH(tdate)
WHEN 1 THEN 'Jan'
WHEN 2 THEN 'Feb'
WHEN 3 THEN 'Mar'
WHEN 4 THEN 'Apr'
WHEN 5 THEN 'May'
WHEN 6 THEN 'Jun'
WHEN 7 THEN 'Jul'
WHEN 8 THEN 'Aug'
WHEN 9 THEN 'Sep'
WHEN 10 THEN 'Oct'
WHEN 11 THEN 'Nov'
WHEN 12 THEN 'Dec'
ELSE 'None'
END)
) INTO tmonth;
INSERT INTO tasks (taskname, taskday, taskmonth, u_id)
VALUES (tname, DAY(tdate), tmonth, uid);
2
SELECT CONCAT('Remains days: ', DATEDIFF(tdate, CURDATE()))
INTO muchdays;
END//
Результат выполнения команд:
CALL createTask('Database optimization', '2009-11-01', 1, @days); SELECT CONCAT('Optimization ', @days);
CALL createTask('Database replication', '2015-09-14', 3, @days);
SELECT CONCAT('Replication ', @days);
Результаты выполнения команд:
Рисунок 1. Результат команд CALL
Результат выполнения команд:
CALL createTask('Database release', '2025-12-12', 2, @days); SELECT * FROM tasks;
Результаты выполнения команд:
Рисунок 2. Результат команд CALL, SELECT
3
Выводы
В ходе выполнения лабораторной работы были изучены встроенные функции
MySQL, такие как MONTH(), DAY(), CURDATE(), DATEDIFF(), CONCAT(), а также использование оператора CASE для условного преобразования данных. Была создана хранимая процедура createTask, которая добавляет записи в таблицу tasks и возвращает количество оставшихся дней до указанной даты.
Контрольные вопросы
1. Как функционирует инструкция CASE языка SQL?
Инструкция CASE позволяет выполнять условные операции в SQL. Она проверяет условия и возвращает соответствующее значение.
CASE
WHEN a1 THEN r1
WHEN a2 THEN r2
ELSE default_result
END
2. Какое значение возвращает встроенная функция MONTH?
Функция MONTH() возвращает номер месяца (от 1 до 12) из указанной даты.
3. Какие действия выполняет функция CONCAT? Что она возвращает?
Функция CONCAT() объединяет две или более строки в одну. Она возвращает результирующую строку.
SELECT CONCAT('Hello', ' ', 'World'); Результат: 'Hello World'
4
