Volver al curso

SQL y Bases de Datos: Gestion de Datos para el Mundo Real

leccion
12 / 12
beginner
12 horas
SQL en el Mundo Real

Procedimientos Almacenados

Lectura
45 min~1 min lectura

Automatiza tus Operaciones

Los procedimientos almacenados son conjuntos de instrucciones SQL que se guardan en la base de datos y pueden ejecutarse cuando sea necesario. Son ideales para automatizar tareas repetitivas y mejorar la seguridad.

Crear un Procedimiento Almacenado

DELIMITER //

CREATE PROCEDURE registrar_pedido(
    IN p_cliente_id INT,
    IN p_producto_id INT,
    IN p_cantidad INT
)
BEGIN
    DECLARE v_precio DECIMAL(10,2);
    
    -- Obtener precio del producto
    SELECT precio INTO v_precio 
    FROM productos 
    WHERE id = p_producto_id;
    
    -- Insertar pedido
    INSERT INTO pedidos (cliente_id, fecha_pedido, total, estado)
    VALUES (p_cliente_id, NOW(), v_precio * p_cantidad, pendiente);
    
    -- Actualizar stock
    UPDATE productos 
    SET stock = stock - p_cantidad 
    WHERE id = p_producto_id;
    
    -- Retornar mensaje
    SELECT Pedido registrado exitosamente as mensaje;
END //

DELIMITER ;

Llamar un Procedimiento

CALL registrar_pedido(1, 5, 3);

Procedimientos con Logica Condicional

DELIMITER //

CREATE PROCEDURE calcular_descuento(
    IN p_monto DECIMAL(10,2),
    OUT p_descuento DECIMAL(10,2)
)
BEGIN
    IF p_monto > 10000 THEN
        SET p_descuento = p_monto * 0.20;
    ELSEIF p_monto > 5000 THEN
        SET p_descuento = p_monto * 0.10;
    ELSEIF p_monto > 1000 THEN
        SET p_descuento = p_monto * 0.05;
    ELSE
        SET p_descuento = 0;
    END IF;
END //

DELIMITER ;

Ventajas y Desventajas

  • Ventajas: Reducen trafico de red, mejoran seguridad, permiten logica compleja
  • Desventajas: Pueden ser difficiles de debugear, menos portables, requieren conocimiento especifico