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

🔖 Справочник

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

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

Практикум закрепляет параметры хранимых процедур на трёх задачах: возраст, зарплата и увеличение зарплаты.

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

Во второй задаче нужен OUT: зарплата возвращается через переменную вызывающего кода.

В третьей задаче нужен INOUT: текущая зарплата входит в процедуру, увеличивается на 10% и возвращается наружу.

Перед проверкой важно создать или выбрать таблицу employees с колонками id, age, salary.

Топ-3 ошибки: пропустить CALL, написать только имя процедуры, забыть SELECT @salary после вызова.

Команды практикума

DELIMITER

Временно меняет разделитель, чтобы MySQL не завершил создание процедуры на первой точке с запятой внутри тела.

DELIMITER $$

CREATE PROCEDURE

Создаёт процедуру для каждой задачи практикума.

CREATE PROCEDURE get_employee_age(IN emp_id INT)

SELECT ... INTO

Используется во второй задаче, чтобы записать зарплату в OUT-параметр.

SELECT salary INTO emp_salary FROM employees WHERE id = emp_id;

SET

Создаёт переменную для передачи в OUT или меняет значение INOUT.

SET emp_salary = emp_salary * 1.1;

CALL

Запускает процедуру. В источнике в решениях местами опущено слово CALL; в исполняемом MySQL-варианте его нужно писать явно.

CALL increase_salary(@salary);