← К оглавлению занятия

🔖 Справочник

📁 Блок: SQL / MySQL / Пользовательские функции ⏱️ Время изучения: ~90 мин 🎯 Сложность: Продвинутая

⚡ Кратко: 🔖 справочник

Пользовательская функция в MySQL создаётся командой CREATE FUNCTION и возвращает одно значение.

Функция объявляет параметры, тип результата через RETURNS, тело между BEGIN и END, а результат отдаёт через RETURN.

Для MySQL в учебных примерах используется DELIMITER //, чтобы точки с запятой внутри тела не завершали весь скрипт раньше времени.

Ключевое свойство DETERMINISTIC означает, что при одинаковых входных данных функция возвращает одинаковый результат.

Минимальный пример: SELECT square_root(25); после создания функции square_root(x DOUBLE) вернёт квадратный корень.

Топ-3 ошибки: забыть DELIMITER, не указать RETURNS, использовать функцию с текущей датой как DETERMINISTIC без проверки документации.

🔖 Справочник занятия

Команды и функции ниже взяты из темы урока и оформлены как быстрый справочник.

DELIMITER

Временно меняет разделитель SQL-команд в клиенте MySQL.

DELIMITER //

CREATE FUNCTION

Создаёт пользовательскую функцию.

CREATE FUNCTION square_root(x DOUBLE)
RETURNS DOUBLE
DETERMINISTIC
BEGIN
    RETURN SQRT(x);
END //

RETURNS

Задаёт тип результата функции.

RETURNS VARCHAR(255)

DETERMINISTIC

Объявляет функцию повторяемой для одинаковых входов.

DETERMINISTIC

RETURN

Возвращает вычисленное значение.

RETURN CONCAT('Hello, ', name, '!');

SELECT function(...)

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

SELECT square_root(25);

SQRT / UPPER / CONCAT

Встроенные функции MySQL, которые используются внутри пользовательских функций.

RETURN UPPER(input_text);

Полный справочник курса: SQL Reference. MongoDB в этом уроке не является основной темой.