DELIMITER
Временно меняет разделитель SQL-команд в клиенте MySQL.
DELIMITER //
Пользовательская функция в 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 в этом уроке не является основной темой.