12 de Junio Del 2023: Unidad 3. Programación de Lenguaje Propietario (PL) Actividad 4. Ejercicio
12 de Junio Del 2023: Unidad 3. Programación de Lenguaje Propietario (PL) Actividad 4. Ejercicio
12 de Junio Del 2023: Unidad 3. Programación de Lenguaje Propietario (PL) Actividad 4. Ejercicio
Profesor:
Participantes: Roobed Trejo Mier
Materia:
Bases de Datos Avanzada
EJERCICIO SOBRE LA CREACIÓN DE PROCEDIMIENTOS,
FUNCIONES Y TRIGGERS
Crea una base de datos llamada ‘Actividad4’, crea una tabla llamada
alumnos con las siguientes columnas:
Alumnos
Una vez creada la tabla crea un trigger con las siguientes características:
o Nombre: trigger_check_nota_before_insert
o Se ejecuta sobre la tabla ‘alumnos’.
o Se ejecuta antes de una operación de inserción.
o Si el nuevo valor de la nota que se quiere insertar es negativo, se
guarda como 0.
o Si el nuevo valor de la nota que se quiere insertar es mayor que 10,
se guarda como 10
DELIMITER $$
DROP TRIGGER IF EXISTS trigger_check_nota_before_insert$$
CREATE TRIGGER trigger_check_nota_before_insert
BEFORE INSERT
ON alumnos FOR EACH ROW
BEGIN
IF NEW.nota < 0 THEN
set NEW.nota = 0;
ELSEIF NEW.nota > 10 THEN
set NEW.nota = 10;
END IF;
END
Una vez creado ejecuta varias sentencias de inserción sobre la tabla ‘alumnos’
y verifica que el trigger funcione correctamente.
Procedimiento:
Inserte datos en la tabla de modo que tenga por lo menos 15 registros. Escribe
notas diferentes para cada uno, incluyendo 0 y 10.
Escribe un procedimiento que reciba como parámetro una nota y realice una
consulta sobre la tabla ‘alumnos’ para obtener todos los alumnos que tengan la
nota igual o mayor a la ingresada.
DELIMITER $$
DROP PROCEDURE IF EXISTS listar_alumnos$$
CREATE PROCEDURE listar_alumnos(IN nota VARCHAR(50))
BEGIN
SELECT *
FROM alumnos
WHERE alumnos.nota > nota OR alumnos.nota = nota ;
END
$$
Función:
Escribe una función para la base de datos ‘Actividad4’ que devuelva el número
total de registros en la tabla ‘alumnos’.
SET GLOBAL log_bin_trust_function_creators = 1;
DELIMITER $$
DROP FUNCTION IF EXISTS contar_alumnos$$
CREATE FUNCTION contar_alumnos(nombre VARCHAR(50))
RETURNS INT UNSIGNED
BEGIN
-- Paso 1. Declaramos una variable local
DECLARE total INT UNSIGNED;
-- Paso 2. Contamos los productos
SET total = (
SELECT COUNT(*)
FROM alumnos
WHERE alumnos.id = id);
-- Paso 3. Devolvemos el resultado
RETURN total;
END
$$
DELIMITER
SELECT contar_alumnos('Alumnos');
Conclusión:
El programa de MySQL es una herramienta muy optima y muy robusta, las partes
de las tablas, índices, trigger, tienen lo necesario para poder trabajar atendiendo
todas las necesidades de las aplicaciones.
El trigger consiste en una serie de reglas predefinidas que se asocian a una tabla.
Estas reglas se aplican a la base de datos cuando se realizan determinadas
operaciones en la tabla, por ejemplo, al añadir, actualizar o eliminar registro. La
principal función de los trigger es contribuir a mejorar la gestión de la base de
datos.
Referencias: