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

5 СЕМЕСТР / ЛР / ЛР6 / ЛР_№6_БД_MySQL_Функции_с_примером

.pdf
Скачиваний:
9
Добавлен:
25.06.2023
Размер:
523.48 Кб
Скачать

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

Создание и вызов хранимых функций

Цель работы: изучить операции по созданию хранимых функций на сервере MySQL.

Теоретический материал.

Хранимая функция создается при помощи оператора create function:

CREATE FUNCTION имя_хранимой_функции (параметры)

[характеристики] тело_функции

В хранимых функциях используются только параметры типа in. Они позволяют передать в функцию входные данные.

Хранимая функция возвращает единственное значение. Тип этого значения позволяет задать оператор return.

Сразу после объявления имени функции и списка параметров следует ключевое слово returns, которое определяет тип возвращаемого значения. В

теле функции обязательно должен присутствовать один или более операторов return, которые останавливают работу функции и возвращают значение.

Для вызова хранимой функции не требуется специального оператора.

Хранимая функция вызывается при помощи оператора select.

Для просмотра списка хранимых функций предназначен оператор show function status. Оператор имеет следующий синтаксис:

SHOW FUNCTION STATUS [LIKE ‘pattern’];

Оператор выводит список хранимых функций. При использовании ключевого слова like можно вывести информацию только о тех функциях,

имена которых удовлетворяют шаблону pattern.

Пример:

Для начала установим разделитель, чтобы символ ‘;’ не воспринимался как сигнал к отправке запроса на сервер.

DELIMITER //

Пусть имеется разница между двумя датами, выраженная в секундах.

Cоздадим функцию FormatSecond(), которая будет форматировать временной интервал и возвращать его в виде строки:

Х дней Y часов Z минут W секунд

В примере из параметра second последовательно вычитаются дни,

часы, минуты, которые заносятся в локальные переменные day, hour, minute

соответственно. После чего результат собирается в конечную строку при помощи встроенной функции concat().

CREATE FUNCTION FormatSecond (second INT)

RETURNS text

BEGIN

DECLARE day, hour, minute INT;

SET day = floor (second/86400);

SET second = second – day*86400;

SET hour = floor (second/3600);

SET second = second – hour*3600;

SET minute = floor (second/60);

SET second = second – minute*60;

RETURN concat (day, “дней”, hour, “часов”, minute, “минут”, second, “секунд”);

END //

Исходные данные: БД созданная в лабораторной работе №2.

Порядок выполнения работы.

1.Создать хранимую функцию, используя операторы ветвления.

2.Создать хранимую функцию, используя циклы.

3.Показать список хранимых функций.

4.Вызвать созданные функции.

Содержание отчета

1.Цель работы.

2.Схема данных.

3.Скриншот списка хранимых функций.

4.Листинг созданных функций.

5.Скриншоты выполнения хранимых функций.

6.Вывод в виде эссе

7.Список использованных источников

Вопросы для самопроверки

1.Что такое хранимая функция?

2.Какие бывают операторы ветвления?

3.Как можно вызвать хранимую функцию?

4.Как можно просмотреть список хранимых функций?

Пример выполнения

Цель работы: изучить операции по созданию хранимых функций на сервере MySQL.

Функция, которая на вход получает название модели одежды, а на выход получает стоимость этих изделий.

Рисунок 1 – Скрипт функции

Результат работы программы.

Рисунок 2 – Результат

Функция, которая будет форматировать временной интервал и

возвращать его в виде строки:

Х дней Y часов Z минут W секунд.

Рисунок 3 – Скрипт функции

Результат работы.

Рисунок 4 – Результат выполнения функции Скриншот хранимых функций.

Рисунок 5 – Хранимые функции

Соседние файлы в папке ЛР6