📖 Теория
⚡ Кратко: 📖 теория
Хранимая процедура — сохранённый в базе блок SQL-кода для многократного выполнения.
В MySQL процедура создаётся через CREATE PROCEDURE, тело пишется в BEGIN ... END, а вызывается через CALL.
Параметры могут быть входными IN, выходными OUT и двунаправленными INOUT.
Минимальный пример: CALL add_employee('John Doe', 30); добавляет сотрудника через заранее созданную процедуру.
Процедуры подходят для повторяемых серверных процессов, сложной бизнес-логики и ограничения прямого доступа к таблицам.
Топ-3 ошибки: забыть DELIMITER, вызвать процедуру как функцию через SELECT, перепутать имя столбца id/employee_id в практической задаче.
Что такое хранимая процедура
Хранимые процедуры — это блоки SQL-кода, которые сохраняются в базе данных для многократного использования. Они выполняются на стороне сервера и позволяют автоматизировать повторяющиеся операции, сложные вычисления и серверные процессы.
В источнике подчёркнуты четыре особенности: производительность, сложная бизнес-логика, безопасность и повторное использование.
Синтаксис MySQL
DELIMITER $$
CREATE PROCEDURE procedure_name([parameters])
BEGIN
-- тело процедуры
END $$
DELIMITER ;
DELIMITER $$нужен, потому что внутри процедуры используются обычные точки с запятой.CREATE PROCEDUREсоздаёт процедуру в базе данных.IN,OUT,INOUTзадают направление параметров.BEGIN ... ENDсодержит тело процедуры.
Функция или процедура
Функция возвращает одно значение и вызывается как выражение. Процедура вызывается командой CALL и может выполнять последовательность действий: вставку, расчёты, присваивание выходных параметров.
Синтаксис процедур отличается между MySQL, PostgreSQL и SQL Server. В MongoDB нет SQL-хранимых процедур; серверный JavaScript в MongoDB имеет ограничения и отдельные предупреждения в документации.