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

📖 Теория

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

⚡ Кратко: 📖 теория

Summary session 12 повторяет хранимые процедуры и параметры IN, OUT, INOUT.

Процедура создаётся через CREATE PROCEDURE, тело помещается в BEGIN ... END, вызывается через CALL.

IN подходит для входных значений, например id сотрудника.

OUT возвращает рассчитанное значение через переменную вызывающего кода.

INOUT получает начальное значение, изменяет его и возвращает обратно.

Итоговое задание — завершить задачи практикума: возраст, зарплата, увеличение зарплаты.

Топ-3 ошибки: забыть DELIMITER, не использовать SELECT ... INTO, перепутать OUT и INOUT.

Что повторяется

Источник Summary session 12 собирает темы двух предыдущих занятий: создание хранимых процедур, вызов процедур и три типа параметров.

Шпаргалка по синтаксису

DELIMITER $$

CREATE PROCEDURE procedure_name([parameters])
BEGIN
    -- тело процедуры
END $$

DELIMITER ;

CALL procedure_name(arguments);
  • DELIMITER нужен для корректного ввода тела процедуры в MySQL-клиенте.
  • [parameters] может содержать IN, OUT, INOUT.
  • CALL запускает процедуру после создания.

Главное сравнение

ТипСценарийПример
INнайти строку по idget_employee_age(IN emp_id INT)
OUTвернуть значение наружуget_employee_salary(IN emp_id INT, OUT emp_salary INT)
INOUTизменить переданное значениеincrease_salary(INOUT emp_salary INT)