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ícate

Los 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.

Empezar curso de SQL

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.