Вопрос №17
Осталось:
Что такое хранимая процедура и как она отличается от функции?
Образцовый ответ
Показывать ответ по умолчанию
Хранимая процедура (Stored Procedure):
- Набор SQL-команд, сохраненных на сервере для повторного использования.
- Может выполнять операции SELECT, INSERT, UPDATE, DELETE.
- Может возвращать несколько наборов результатов или ничего не возвращать.
- Может иметь входные и выходные параметры.
- Не может быть вызвана внутри SQL-запроса.
Пример хранимой процедуры:
CREATE PROCEDURE GetEmployeeByID(IN emp_id INT) BEGIN SELECT * FROM employees WHERE id = emp_id; END;
Вызов процедуры:
CALL GetEmployeeByID(1);
Функция (Function):
- Возвращает одно значение (скалярная функция) или таблицу (табличная функция).
- Может использоваться в SQL-выражениях (например, в SELECT или WHERE).
- Должна возвращать значение.
- Обычно используется для вычислений и возвращает детерминированный результат.
Пример функции:
CREATE FUNCTION GetEmployeeSalary(emp_id INT) RETURNS DECIMAL(10,2) BEGIN DECLARE salary DECIMAL(10,2); SELECT e.salary INTO salary FROM employees e WHERE e.id = emp_id; RETURN salary; END;
Использование функции:
SELECT name, GetEmployeeSalary(id) FROM employees;