💻 Примеры
⚡ Кратко: 💻 примеры
Summary session 12 повторяет хранимые процедуры и параметры IN, OUT, INOUT.
Процедура создаётся через CREATE PROCEDURE, тело помещается в BEGIN ... END, вызывается через CALL.
IN подходит для входных значений, например id сотрудника.
OUT возвращает рассчитанное значение через переменную вызывающего кода.
INOUT получает начальное значение, изменяет его и возвращает обратно.
Итоговое задание — завершить задачи практикума: возраст, зарплата, увеличение зарплаты.
Топ-3 ошибки: забыть DELIMITER, не использовать SELECT ... INTO, перепутать OUT и INOUT.
Единый пример для повторения
DROP TABLE IF EXISTS employees;
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(100),
age INT,
salary INT,
department_id INT
);
INSERT INTO employees (id, name, age, salary, department_id) VALUES
(1, 'Anna', 28, 50000, 10),
(2, 'Ben', 34, 62000, 20),
(3, 'Cara', 41, 71000, 10);
DELIMITER $$
CREATE PROCEDURE get_employee_age(IN emp_id INT)
BEGIN
SELECT age FROM employees WHERE id = emp_id;
END $$
CREATE PROCEDURE get_employee_salary(IN emp_id INT, OUT emp_salary INT)
BEGIN
SELECT salary INTO emp_salary FROM employees WHERE id = emp_id;
END $$
CREATE PROCEDURE increase_salary(INOUT emp_salary INT)
BEGIN
SET emp_salary = emp_salary * 1.1;
END $$
DELIMITER ;
Этот блок повторяет всё, что нужно для задач summary: входной id, выходная переменная и изменение переданного значения.