Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторные работы. Дятлов / Отчет Базы данных №5

.pdf
Скачиваний:
0
Добавлен:
31.10.2025
Размер:
365.7 Кб
Скачать

Министерство цифрового развития, связи и массовых коммуникаций Российской Федерации

Федеральное государственное бюджетное образовательное учреждение Высшего образования «Санкт-Петербургский государственный университет телекоммуникаций им. Проф. М. А. Бонч-Бруевича» (СПбГУТ)

Факультет Информационных технологий и программной инженерии

Кафедра Программной инженерии

Лабораторная работа

По дисциплине: База данных

Выполнил студент: Яковлев М. А. ИКПИ-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