0% encontró este documento útil (0 votos)
17 vistas3 páginas

? CREACIÓN DE FUNCIONES EN MySQL

El documento explica cómo crear funciones y disparadores en MySQL. Se presentan ejemplos de funciones para calcular IVA y edad, así como un disparador que registra información en una bitácora tras la inserción de un nuevo niño. También se detallan las variaciones de eventos en disparadores y cómo gestionarlos.

Cargado por

leletainyy
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)
17 vistas3 páginas

? CREACIÓN DE FUNCIONES EN MySQL

El documento explica cómo crear funciones y disparadores en MySQL. Se presentan ejemplos de funciones para calcular IVA y edad, así como un disparador que registra información en una bitácora tras la inserción de un nuevo niño. También se detallan las variaciones de eventos en disparadores y cómo gestionarlos.

Cargado por

leletainyy
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

� CREACIÓN DE FUNCIONES EN MySQL

Las funciones son como "mini programas" que hacen cálculos y te regresan un resultado. Por
ejemplo, calcular IVA, edad, promedio, etc.

🔢 Ejemplo 1: Función para calcular el VA de un precio

DELIMITER //

CREATE FUNCTION calcularIVA(precio DECIMAL(10,2))


RETURNS DECIMAL(10,2)
DETERMINISTIC
BEGIN
DECLARE iva DECIMAL(10,2);
SET iva = precio * 0.16;
RETURN iva;
END //

DELIMITER ;

📘 Explicación:

 DELIMITER //: Cambiamos el final de línea para que MySQL sepa que el ; no es el fin
del bloque.
 CREATE FUNCTION calcularIVA(precio DECIMAL(10,2)): Creamos una
función llamada calcularIVA que recibe un parámetro llamado precio.
 RETURNS DECIMAL(10,2): La función va a devolver un número decimal (ejemplo:
12.50).
 DETERMINISTIC: Indica que, con el mismo input, siempre da el mismo output.
 DECLARE iva ...: Creamos una variable interna iva.
 SET iva = precio * 0.16;: Calculamos el 16% del precio.
 RETURN iva;: Devolvemos el resultado.
 END //: Finaliza la función.
 DELIMITER ;: Regresamos al delimitador normal.

🙋♀� ¿Cómo la uso?

SELECT calcularIVA(100); -- Resultado: 16.00

� Ejemplo 2: Función para calcular edad a partir de una fecha de nacimiento

DELIMITER //

CREATE FUNCTION calcularEdad(fechaNacimiento DATE)


RETURNS INT
DETERMINISTIC
BEGIN
DECLARE edad INT;
SET edad = TIMESTAMPDIFF(YEAR, fechaNacimiento, CURDATE());
RETURN edad;
END //

DELIMITER ;

📘 Explicación:

 TIMESTAMPDIFF(YEAR, fechaNacimiento, CURDATE()): Calcula cuántos


años han pasado desde la fecha de nacimiento hasta hoy.

🙋♀� ¿Cómo la uso?

SELECT calcularEdad('2005-06-01'); -- Resultado: 19 (si estás en


2025)

🔥 DISPARADORES (TRIGGERS)

Los disparadores ejecutan automáticamente instrucciones cuando ocurre un evento (INSERT,


UPDATE o DELETE) en una tabla.

📋 Ejemplo 1: Crear un disparador que guarda en una bitácora cuando se registra un niño

DELIMITER //

CREATE TRIGGER insertarBitacoraNino


AFTER INSERT ON nino
FOR EACH ROW
BEGIN
DECLARE nc VARCHAR(50);
DECLARE edad INT;

SET nc = NOMCOM([Link]); -- Llama una función para obtener


el nombre completo
SET edad = calcularEdad([Link]); -- Calcula edad
usando una función

INSERT INTO bitacoraNino


VALUES (NULL, nc, edad, SESSION_USER(), NOW());
END //
DELIMITER ;

📘 Explicación paso a paso:

 CREATE TRIGGER insertarBitacoraNino: Nombre del trigger.


 AFTER INSERT ON nino: Se ejecuta después de insertar un nuevo niño en la tabla
nino.
 FOR EACH ROW: Se aplica por cada fila insertada.
 BEGIN ... END: Bloque de código del trigger.
 DECLARE: Declaramos variables para guardar datos temporalmente.
 [Link] y [Link]: Se refiere a los valores del nuevo registro
insertado.
 NOMCOM(...) y calcularEdad(...): Son funciones creadas por ti que se usan
dentro del trigger.
 SESSION_USER(): Devuelve el usuario que ejecutó la acción.
 NOW(): Fecha y hora actual.
 INSERT INTO bitacoraNino ...: Guarda los datos en una bitácora.

💡 Variaciones de eventos en triggers:

Evento Cuándo se activa


BEFORE INSERT Antes de insertar un registro
AFTER INSERT Después de insertar
BEFORE UPDATE Antes de modificar
AFTER UPDATE Después de modificar
BEFORE DELETE Antes de borrar
AFTER DELETE Después de borrar

🛠� Mostrar, borrar y ver triggers

 Mostrar todos los triggers:


 SHOW TRIGGERS;
 Mostrar trigger específico:
 SHOW CREATE TRIGGER insertarBitacoraNino;
 Borrar un trigger:
 DROP TRIGGER IF EXISTS insertarBitacoraNino;

También podría gustarte