0% encontró este documento útil (0 votos)
21 vistas7 páginas

Disparadores y Procedimientos en MariaDB

Cargado por

davidreal1145
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
21 vistas7 páginas

Disparadores y Procedimientos en MariaDB

Cargado por

davidreal1145
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Centro de Enseñanza Técnica

Industrial
2º Parcial

Práctica disparadores

Elaborado por el alumno:

Real Haro David Kaleb


Registro: 20300663

Grupo: 6C1
Carrera: Tecnólogo en Desarrollo de Software

Materia: Bases de Datos II

Asesor:
Mtra. Karla Areli Isaac Rodríguez

22 de marzo de 2023
Equipo 1:
• Procedimiento almacenado:
MariaDB [ceti_6c1]> CREATE PROCEDURE alumno_imprimir(
-> IN registro_al bigint)
-> SELECT
[Link],[Link],[Link],[Link],[Link],municipio.n
ombre,AVG([Link]),[Link] FROM alumno INNER JOIN
municipio ON municipio.pk_municipio=[Link] INNER JOIN carrera ON
carrera.pk_carrera=[Link] INNER JOIN calificacion ON
[Link]=[Link] WHERE registro_al=[Link];
Query OK, 0 rows affected (0.004 sec)

• Evento:
MariaDB [ceti_6c1]> CREATE EVENT imprimir
-> ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 MINUTE
-> DO SELECT*FROM alumno;
Query OK, 0 rows affected, 1 warning (0.009 sec)

• Script:
MariaDB [(none)]> CREATE DATABASE CETI_6C1;
Query OK, 1 row affected (0.001 sec)

MariaDB [(none)]> USE CETI_6C1;


Database changed

MariaDB [ceti_6c1]> SELECT * FROM calificacion WHERE calificacion <70 AND alumno
< 20300000;

MariaDB [bd_ceti_6c1]> DROP DATABASE CETI_6C1;


Query OK, 0 rows affected (0.019 sec)
Equipo 2:
• Trigger:
MariaDB [ceti_6c1]> DELIMITER //
MariaDB [ceti_6c1]> CREATE TRIGGER trigger_pancho
-> AFTER INSERT ON alumno
-> FOR EACH ROW
-> BEGIN
-> IF [Link]<20300000
-> THEN DELETE FROM alumno WHERE [Link]=[Link];
-> END IF;
-> END//
Query OK, 0 rows affected (0.019 sec)

MariaDB [ceti_6c1]>

• Evento:
MariaDB [ceti_6c1]> CREATE EVENT Siemprealas8
-> ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 MINUTE
-> DO SELECT*FROM alumno;
Query OK, 0 rows affected, 1 warning (0.013 sec)

• Script:
MariaDB [(none)]> CREATE DATABASE CETI_6C1;
Query OK, 1 row affected (0.001 sec)

MariaDB [(none)]> USE CETI_6C1;


Database changed

MariaDB [ceti_6c1]> CREATE TABLE edificio(


-> edificio_letra char PRIMARY KEY,
-> pisos tinyint,
-> salones varchar(5),
-> carrera_uno tinyint,
-> carrera_dos tinyint,
-> FOREIGN KEY (carrera_uno) REFERENCES carrera(pk_carrera),
-> FOREIGN KEY (carrera_dos) REFERENCES carrera(pk_carrera));
Query OK, 0 rows affected (0.035 sec)
Equipo 3:
• Trigger:
MariaDB [ceti_6c1]> CREATE TRIGGER ayuda_calificacion
-> AFTER INSERT ON calificacion
-> FOR EACH ROW
-> UPDATE calificacion SET calificacion=50 WHERE calificacion<50;
Query OK, 0 rows affected (0.025 sec)

• Procedimiento almacenado:
MariaDB [ceti_6c1]> CREATE PROCEDURE promedio_alumno(
-> IN registro_alumno bigint(20),
-> IN semestre varchar(12))
-> SELECT AVG(calificacion) AS promedio FROM calificacion WHERE
[Link]=registro_alumno && [Link]=semestre;
Query OK, 0 rows affected (0.022 sec)

• Script:
MariaDB [(none)]> create database ceti_6c1;
Query OK, 1 row affected (0.001 sec)

MariaDB [(none)]> use ceti_6c1;


Database changed

MariaDB [ceti_6c1]> SELECT [Link] AS alumno,[Link] AS


profesor,[Link] AS materia,[Link] FROM alumno INNER
JOIN calificacion ON [Link]=[Link] INNER JOIN asignatura ON
asignatura.pk_codigo=[Link] INNER JOIN profesor ON
[Link]=[Link];
Equipo 4:
• Trigger:
MariaDB [ceti_6c1]> CREATE TRIGGER r_bajas
-> BEFORE DELETE ON alumno
-> FOR EACH ROW
-> INSERT INTO bajas(registro,nombre)
-> VALUES([Link],[Link]);
Query OK, 0 rows affected (0.022 sec)

• Procedimiento almacenado:
MariaDB [ceti_6c1]> CREATE PROCEDURE cambiar_nombre(
-> IN numero_registro bigint(20),
-> IN nuevo_nombre varchar(30),
-> IN nuevo_domicilio varchar(55))
-> UPDATE alumno SET nombre=nuevo_nombre,domicilio=nuevo_domicilio
-> WHERE registro=numero_registro; call cambiar_nombre(20300696,'Sonia
Erika','Callejon Salsipuedes, Barrio Coltongo');
Query OK, 0 rows affected (0.021 sec)

Query OK, 1 row affected (0.006 sec)

• Evento:
MariaDB [ceti_6c1]> CREATE EVENT comentario
-> ON schedule AT CURRENT_TIMESTAMP + INTERVAL 1 MINUTE
-> DO SELECT*FROM alumno;
Query OK, 0 rows affected, 1 warning (0.015 sec)
Conclusión:
En conclusión, los disparadores llevan a cabo una acción cuando se produce algún
suceso relacionado con la base de datos, en el caso de los triggers pueden hacer la
inserción, actualización y eliminación; en el caso de los procedimientos almacenados
permiten la realización de diferentes tareas complejas o repetitivas; por otro lado, los
eventos se programan para que se ejecuten en momentos específicos a horas
determinadas para la automatización y eliminación de datos antiguos; y por último, los
scripts, sirven para la creación de tablas, bases de datos, inserciones de datos, así como
el hacer modificaciones masivas o repetitivas.
En el caso de los desarrollados por los equipos, estos realizan las siguientes funciones:

• Equipo 1: el Procedimiento almacenado tiene como tarea el mostrar la información


de los alumnos, como lo es su registro, su nombre y sus apellidos, su domicilio, su
municipio, el promedio de sus calificaciones y la carrera a la que pertenecen. El
Evento muestra la información de todos los alumnos en un intervalo de un minuto.
Por último, el Script muestra todos los campos de la tabla calificaciones de los
alumnos que tengan una calificación menor a 70 y un registro menor a 20300000.
• Equipo 2: el Trigger verifica el registro del alumno, el cuál si es menor a 2030000
será eliminado de la base de datos. El Evento, muestra la información de todos los
campos de la tabla alumno en un intervalo de un minuto. El Script lo que hace es
crear la tabla edificio junto con todos sus atributos que incluye la letra de cada uno
(sería su PK), la cantidad de pisos, el nombre de cada salón y que carreras hay en
cada salón (serían FK de la tabla carrera).
• Equipo 3: el Trigger actualiza las calificaciones de los alumnos a 50 de aquellos
que tengan calificaciones menores a dicha cantidad. El Procedimiento almacenado
muestra el promedio de las calificaciones de los alumnos en base a los periodos
cursados. Por último, el Script, muestra la información de los alumnos junto con
sus calificaciones, el nombre de la materia y el nombre del profesor que la imparte.
• Equipo 4: el Trigger a partir de la creación de una nueva tabla llamada “bajas”, lo
que hace es añadir a dicha tabla los alumnos que hayan dado de baja de acuerdo
a su registro y su nombre. El Evento, muestra la información de todos los campos
de la tabla alumno en un intervalo de un minuto. Por último, el procedimiento
almacenado actualiza el registro, nombre y domicilio de los alumnos, cómo
ejemplo se actualiza el registro 20300696 con el nombre “Sonia Erikka” con el
domicilio “Callejon Salsipuedes, Barrio Coltongo”.
Como se puede apreciar, estos pueden hacer más rápido ciertas tareas y consultas a la
base de datos con quizá el único inconveniente de que requieren de precisión, puesto que
un error puede afectar gravemente a la hora de hacer consultas, y sobre todo una sintaxis
más compleja.

También podría gustarte