SQL: Funciones y procedimientos almacenados
SQL: funciones y procedimientos almacenados. Aprende a utilizar funciones y procedimientos almacenados en SQL con ejemplos prácticos y actualizados.
Aprende SQL GRATIS y certifícateLos procedimientos almacenados y las funciones son componentes fundamentales en SQL que permiten encapsular lógica de negocio en la base de datos, optimizando el rendimiento y la gestión del código.
Procedimientos almacenados
Los procedimientos almacenados son conjuntos de instrucciones SQL que se almacenan en la base de datos y se pueden ejecutar de manera repetitiva. Estos procedimientos pueden aceptar parámetros de entrada y devolver valores.
Creación de un procedimiento almacenado
Para crear un procedimiento almacenado, se utiliza la sentencia CREATE PROCEDURE
. El siguiente ejemplo muestra cómo crear un procedimiento que inserta un nuevo registro en una tabla de empleados:
CREATE PROCEDURE insertar_empleado (
IN nombre VARCHAR(50),
IN apellido VARCHAR(50),
IN salario DECIMAL(10, 2)
)
BEGIN
INSERT INTO empleados (nombre, apellido, salario)
VALUES (nombre, apellido, salario);
END;
Ejecución de un procedimiento almacenado
Para ejecutar un procedimiento almacenado, se utiliza la sentencia CALL
:
CALL insertar_empleado('Juan', 'Pérez', 30000.00);
Funciones
Las funciones en SQL son similares a los procedimientos almacenados, pero están diseñadas para devolver un valor único. Se utilizan con frecuencia para realizar cálculos y transformaciones de datos.
Creación de una función
Para crear una función, se utiliza la sentencia CREATE FUNCTION
. El siguiente ejemplo muestra cómo crear una función que calcula el salario anual de un empleado:
CREATE FUNCTION calcular_salario_anual (
salario_mensual DECIMAL(10, 2)
) RETURNS DECIMAL(10, 2)
DETERMINISTIC
BEGIN
RETURN salario_mensual * 12;
END;
Uso de una función
Las funciones se pueden utilizar en sentencias SQL estándar. Por ejemplo, para calcular el salario anual de un empleado con un salario mensual de 2500.00:
SELECT calcular_salario_anual(2500.00) AS salario_anual;
Parámetros en procedimientos y funciones
Parámetros de entrada y salida
En los procedimientos almacenados, los parámetros pueden ser de entrada (IN
), de salida (OUT
) o ambos (INOUT
). En las funciones, los parámetros son siempre de entrada.
Ejemplo de procedimiento con parámetros de salida
El siguiente ejemplo muestra un procedimiento que devuelve el salario de un empleado dado su ID:
CREATE PROCEDURE obtener_salario (
IN id_empleado INT,
OUT salario DECIMAL(10, 2)
)
BEGIN
SELECT salario INTO salario
FROM empleados
WHERE id = id_empleado;
END;
Para llamar a este procedimiento y obtener el salario, se puede utilizar:
CALL obtener_salario(1, @salario);
SELECT @salario;
Consideraciones sobre el rendimiento
El uso de procedimientos almacenados y funciones puede mejorar significativamente el rendimiento de las aplicaciones al reducir la cantidad de datos transferidos entre la base de datos y la aplicación cliente. Además, el código SQL optimizado en la base de datos puede ejecutarse más rápidamente que el código SQL enviado desde una aplicación cliente.
Lecciones de este módulo de SQL
Lecciones de programación del módulo Funciones y procedimientos almacenados del curso de SQL.
Ejercicios de programación en este módulo de SQL
Evalúa tus conocimientos en Funciones y procedimientos almacenados con ejercicios de programación Funciones y procedimientos almacenados de tipo Test, Puzzle, Código y Proyecto con VSCode.