Procedimientos Almacenados en SQL

Clase 32 de 36Curso de Bases de Datos con SQL

Resumen

¿Qué son los procedimientos almacenados y por qué son útiles?

Los procedimientos almacenados son una herramienta fundamental para optimizar procesos repetitivos en la gestión de bases de datos. En lugar de escribir y ejecutar manualmente las consultas SQL cada vez que se necesita, los procedimientos almacenados permiten definir un conjunto de instrucciones SQL que pueden ser ejecutadas automáticamente. Esto es especialmente útil para tareas que requieren inserción, modificación o creación de registros con regularidad, como actualizaciones diarias, semanales o mensuales.

  • Automatización: Los procedimientos almacenados facilitan la automatización de procesos al permitir su ejecución predefinida e interactuar con otros procesos empresariales.
  • Optimización: Ayudan a mejorar la eficiencia del sistema al reducir el tiempo y esfuerzo para realizar tareas repetitivas, manteniendo la lógica de programación ya establecida.
  • Interacción con otros sistemas: Pueden ser diseñados para generar salidas que se utilizan como entradas en otros sistemas, mejorando la integración y la coherencia en los flujos de trabajo.

¿Cómo se crean los procedimientos almacenados en SQL y MySQL?

Creación de un procedimiento almacenado en SQL Server

Para crear un procedimiento almacenado en SQL Server, se utiliza la palabra reservada CREATE PROCEDURE seguida del nombre del procedimiento. Es importante ser específico en la denominación para facilitar la identificación de la función del procedimiento. Aquí se definen las variables y parámetros necesarios, especificando los tipos de datos que se esperan recibir.

CREATE PROCEDURE InsertEmployee 
    @Name NVARCHAR(50), 
    @Surname NVARCHAR(50), 
    @DepartmentId INT, 
    @Salary DECIMAL(10, 2), 
    @HireDate DATE
AS
BEGIN
    INSERT INTO Employees (Name, Surname, DepartmentId, Salary, HireDate)
    VALUES (@Name, @Surname, @DepartmentId, @Salary, @HireDate);
END;

Creación de un procedimiento almacenado en MySQL

De manera similar a SQL Server, en MySQL se usa CREATE PROCEDURE pero los parámetros se definen con la palabra reservada IN para indicar que son entradas al procedimiento.

DELIMITER //
CREATE PROCEDURE InsertEmployee (IN Name VARCHAR(50), IN Surname VARCHAR(50), IN DepartmentId INT, IN Salary DECIMAL(10,2), IN HireDate DATE)
BEGIN
    INSERT INTO Employees (Name, Surname, DepartmentId, Salary, HireDate)
    VALUES (Name, Surname, DepartmentId, Salary, HireDate);
END;
//
DELIMITER ;

¿Cómo se ejecutan los procedimientos almacenados?

Al ejecutar un procedimiento almacenado, se utiliza una sintaxis específica según el lenguaje SQL que se esté empleando.

  • En SQL Server, se puede invocar el procedimiento utilizando la palabra reservada EXEC:

    EXEC InsertEmployee 'John', 'Doe', 3, 55000, '2023-10-01';
    
  • En MySQL, se utiliza la palabra CALL:

    CALL InsertEmployee('John', 'Doe', 3, 55000, '2023-10-01');
    

Es crucial recordar que los parámetros deben enviarse en el orden exacto en que fueron definidos en el procedimiento.

¿Cómo empezar a practicar procedimientos almacenados?

La práctica es esencial para dominar la creación y uso de procedimientos almacenados. Se recomienda utilizar plataformas de práctica SQL para experimentar con ejemplos y resolver errores que puedan surgir en el proceso de codificación.

  1. Elige un entorno SQL: Puedes escoger plataformas gratuitas como MySQL Workbench, SQL Server Management Studio, o entornos en línea como DB-Fiddle.
  2. Prueba diferentes consultas: Inserta, actualiza o elimina registros utilizando procedimientos almacenados.
  3. Experimenta con condicionales: Asegúrate de usar condiciones para evitar operar en datos incorrectos.

Amplía tus conocimientos integrando consultas más complejas que incorporen estadísticas, predicciones o analíticas avanzadas. Así, no solo optimizas el tiempo de codificación, sino que también contribuyes al desarrollo eficiente de soluciones empresariales con procedimientos almacenados. Sigue practicando y compartiendo tus experiencias para fortalecer tu habilidad en esta poderosa herramienta de bases de datos.