Conceptos de Programación de Bases de Datos en MySQL

En este artículo, vamos a explorar los conceptos clave de la programación de bases de datos en MySQL, utilizando la estructura de una base de datos llamada «Comisaria» como ejemplo. Esta base de datos incluye tablas para gestionar agentes, ciudadanos, casos y reportes, y nos servirá para entender cómo funcionan procedimientos, funciones, triggers, y otros elementos importantes en MySQL.

Declaración y Uso de Variables

Las variables en MySQL se declaran y se asignan valores de la siguiente manera:

DECLARE nombre_variable tipo_variable [DEFAULT valor];
SET nombre_variable = valor_variable;

También se pueden asignar valores a variables como resultado de una consulta:

SELECT campo1, campo2 INTO variable1, variable2 FROM nombre_tabla WHERE condición;

Estructuras de Control de Flujo

Sentencia IF

La sentencia IF permite ejecutar bloques de código condicionalmente:

IF condicion THEN
    sentencias;
ELSEIF condicion2 THEN
    sentencias;
ELSE
    sentencias;
END IF;

Sentencia CASE

La sentencia CASE se utiliza para seleccionar entre múltiples opciones:

CASE variable
    WHEN valor1 THEN sentencias;
    WHEN valor2 THEN sentencias;
    ELSE sentencias;
END CASE;

Bucles y Control de Bucles

MySQL soporta varios tipos de bucles: LOOP, REPEAT, y WHILE.

LOOP

[etiqueta_inicio:] LOOP
    sentencias;
END LOOP [etiqueta_fin];

REPEAT

[etiqueta_inicio:] REPEAT
    sentencias;
UNTIL condicion;
END REPEAT [etiqueta_fin];

WHILE

[etiqueta_inicio:] WHILE condicion DO
    sentencias;
END WHILE [etiqueta_fin];

Salir de Bucles: LEAVE y ITERATE

  • LEAVE etiqueta; para salir de un bucle etiquetado.
  • ITERATE etiqueta; para reiniciar un bucle etiquetado.

Procedimientos y Funciones Almacenadas

Los procedimientos y funciones almacenadas son conjuntos de comandos SQL almacenados en el servidor.

Crear un Procedimiento

CREATE PROCEDURE nombre_procedimiento([param1 tipo, param2 tipo, ...])
BEGIN
    sentencias;
END;

Crear una Función

CREATE FUNCTION nombre_funcion([param1 tipo, param2 tipo, ...]) RETURNS tipo
BEGIN
    sentencias;
END;

Ejemplos de Procedimientos

Listar Usuarios

CREATE PROCEDURE lista_usuarios()
BEGIN
    SELECT * FROM usuarios;
END;

Ver Reservas de una Pista

CREATE PROCEDURE ver_pista_reserva(p_id_reserva INT)
BEGIN
    SELECT * FROM reservas WHERE id_pista = p_id_pista;
END;

Control de Transacciones

Para manejar varias operaciones relacionadas como una transacción:

START TRANSACTION;
-- operaciones SQL
COMMIT;

Control de Errores

Gestionar errores mediante excepciones:

DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
    ROLLBACK;
END;

Triggers

Los triggers son procedimientos que se activan automáticamente cuando ocurre un evento específico en una tabla. Los eventos pueden ser INSERT, UPDATE, o DELETE, y pueden activarse antes (BEFORE) o después (AFTER) del evento.

Crear un Trigger

CREATE TRIGGER nombre_trigger BEFORE INSERT ON nombre_tabla
FOR EACH ROW
BEGIN
    -- sentencias SQL
END;

Ejemplo de Trigger

Calcular automáticamente la edad de un usuario al insertarlo:

CREATE TRIGGER nuevo_usuario BEFORE INSERT ON clientes
FOR EACH ROW
BEGIN
    IF NEW.fecha_nacimiento IS NOT NULL THEN
        SET NEW.edad = YEAR(CURRENT_DATE()) - YEAR(NEW.fecha_nacimiento);
    END IF;
END;

Ventajas y Desventajas de Procedimientos Almacenados

Ventajas

  • Reutilización de Código: Permiten ejecutar el mismo código desde diferentes aplicaciones sin necesidad de duplicarlo.
  • Seguridad: Las aplicaciones no necesitan acceso directo a los datos.
  • Reducción de Tráfico de Red: Menos datos enviados entre cliente y servidor.

Desventajas

  • Limitaciones de Código: No se pueden combinar con otros lenguajes como Java o C++.
  • Complejidad: Difíciles de escribir y mantener, requieren conocimientos específicos.

Uso de DELIMITER

Para crear procedimientos o funciones sin conflictos con el delimitador ;:

DELIMITER |
CREATE PROCEDURE ver_pistas()
BEGIN
    SELECT * FROM pistas;
END;
|
DELIMITER ;

Conclusión

La programación de bases de datos en MySQL ofrece poderosas herramientas para gestionar datos de manera eficiente y segura. A través de procedimientos, funciones y triggers, es posible automatizar y asegurar muchas operaciones comunes, facilitando así el manejo de datos en aplicaciones complejas. La base de datos de ejemplo «Comisaria» ilustra cómo estos conceptos pueden implementarse en un entorno real.

person encoding in laptop
Photo by Lukas on Pexels.com
error: Content is protected !!

Descubre más desde InfoGonzalez - Blog de formador e informático

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo

Este sitio web utiliza cookies, si necesitas más información puedes visitar nuestra política de privacidad    Ver
Privacidad
Creative Commons License
Except where otherwise noted, the content on this site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.