Procedimientos Almacenados en SQL: Gestión de Variables y Manejo de Excepciones
Clase 33 de 36 • Curso de Bases de Datos con SQL
Contenido del curso
Fundamentos de Bases de Datos
Introducción a las bases de datos relacionales
Manipulación de Datos
Manipulación Avanzada de Datos
- 20
🛠️ Guía de instalación de MySQL y MySQL Workbench
01:23 min - 21

¿Qué es la cláusula WHERE de SQL?
07:58 min - 22

Filtrar y Ordenar Datos en SQL (LIKE)
06:04 min - 23

Cláusulas de Comparación Textual en SQL (AND, NULL, IN, NOT)
06:20 min - 24

Funciones de Aritmética Básica en SQL (COUNT)
09:05 min - 25

Funciones de Aritmética Básica en SQL (MIN, MAX)
04:45 min
Agrupación de Datos
Transformación de Datos
Procedimientos Almacenados
Administración de Base de Datos
Análisis de Datos Avanzados
¿Cómo crear procedimientos almacenados con parámetros de entrada y salida?
El manejo de procederes almacenados en bases de datos como MySQL es crucial para optimizar transacciones complejas y asegurar la integridad de los datos. Aprender a utilizarlos eficazmente, incluyendo la interacción con parámetros de entrada y salida, puede mejorar significativamente tu competencia en el uso de bases de datos. En este instructivo, exploraremos un escenario práctico donde se emplean ambos tipos de parámetros, construyendo sobre la base de los procedimientos previamente almacenados. Al finalizar, tendrás una comprensión sólida de cómo gestionar transacciones y manejar excepciones.
¿Qué son los parámetros de entrada y salida?
En un procedimiento almacenado, los parámetros de entrada permiten pasar información a la operación. Utilizamos la palabra reservada IN para definirlos, seguido por el nombre del parámetro y su tipo de dato. Por otro lado, los parámetros de salida, definidos con OUT, sirven para devolver datos después de completar el procedimiento. Ambos tipos de parámetros comparten una estructura similar, diferenciándose solo por la palabra clave inicial.
¿Cómo influye el uso de variables y manejo de excepciones?
Las variables actúan como contenedores para resultados intermedios o finales dentro del procedimiento almacenado. Es importante no confundir parámetros y variables, pues en MySQL las variables se declaran con la palabra clave DECLARE. En nuestro ejemplo, se utilizará una variable para almacenar el resultado del promedio de salario. Además, el manejo de excepciones es vital para cancelar transacciones ante errores, evitando inconsistencias en tus datos. Se utiliza ROLLBACK para revertir la transacción fallida, junto con el uso de SELECT para mostrar mensajes de error informativos al usuario.
¿Cuál es el proceso para crear un procedimiento almacenado?
-
Definición de Parámetros y Variables:
- Parámetros de entrada (primer nombre, apellido, departamento, salario, fecha).
- Parámetro de salida (resultado promedio).
- Declaración de la variable para almacenar el resultado del promedio.
-
Iniciación de la Transacción:
- Comenzar la transacción con
BEGIN. - Iniciar la declaración de operaciones que incluye, en este ejemplo,
INSERT INTOy una consulta de promedio de salario.
- Comenzar la transacción con
-
Manejo de Excepciones:
- Utilizar
SELECTpara definir el mensaje de error usandoASpara etiquetarlo. - Establecer
ROLLBACKpara revertir operaciones en caso de error.
- Utilizar
-
Concluir Transacción Exitosa:
- Asignar el resultado del cálculo de promedio a la variable usando el símbolo
=. - Confirmar la conclusión exitosa de la transacción con
COMMIT. - Finalizar el procedimiento con
END.
- Asignar el resultado del cálculo de promedio a la variable usando el símbolo
Ejemplo de sintaxis en MySQL
CREATE PROCEDURE CalcularPromedioSalario (
IN nombre VARCHAR(100),
IN apellido VARCHAR(100),
IN departamento VARCHAR(100),
IN salario DECIMAL(10,2),
IN fecha DATE,
OUT promedio DECIMAL(10,2)
)
BEGIN
DECLARE resultadoPromedio DECIMAL(10,2);
START TRANSACTION;
BEGIN
-- Insertar nueva entrada en la tabla empleados
INSERT INTO empleados (nombre, apellido, departamento, salario, fecha)
VALUES (nombre, apellido, departamento, salario, fecha);
-- Calcular el promedio de salarios
SELECT AVG(salario) INTO resultadoPromedio FROM empleados;
-- Asignar el promedio calculado al parámetro de salida
SET promedio = resultadoPromedio;
COMMIT;
EXCEPTION
BEGIN
-- Mensaje de error y rollback si algo falla
SELECT 'Error: no se pudo completar la operación.' AS mensajeError;
ROLLBACK;
END;
END;
END;
Este ejemplo ilustra un procedimiento almacenado que inserta datos y calcula un promedio. En caso de error, el rollback garantiza que no se realicen cambios parciales en los datos.
El compromiso con el aprendizaje de estas herramientas te habilitará para manejar transacciones complejas con confianza y eficiencia. Te animamos a experimentar y crear tus propios procedimientos, incrementando así tu conocimiento y habilidades en gestión de bases de datos. Si tienes preguntas o deseas contribuir al desarrollo de estas prácticas, ¡compártelo en los comentarios!