Funciones Almacenadas
Funciones Almacenadas
FACULTAD DE INGENIERIAS
ASIGNATURA:
BASE DE DATOS II
AUTOR:
FERNANDO LLIGUIPUMA
DOCENTE DE LA ASIGNATURA:
ING. LUIS NUÑES FREIRE, MGS
SANTO DOMINGO
2020
Actividad: Desarrollar los procedimientos almacenados para los siguientes enunciados:
a. Mediante una función muestre un mensaje que indique si un determinado libro
tiene una cantidad de ejemplares mayor a 3.
delimiter $$
CREATE FUNCTION fn_ejemplar_mayor_a_3(nombre VARCHAR(50))
RETURNS VARCHAR(25)
BEGIN
DECLARE men VARCHAR(50);
DECLARE cuenta INT;
set cuenta = (SELECT ejemplares_libro
FROM libros
WHERE titulo_libro LIKE nombre);
if cuenta > 3 then
set men = "El ejemplar si es mayor a 3";
else
set men = "El ejemplar no es mayor a 3";
END if;
RETURN men;
END$$
delimiter $$
create function fn_comparacion(cod1 int, cod2 int)
returns varchar(15)
BEGIN
DECLARE mensaje varchar(15);
DECLARE v1 int;
DECLARE v2 int;
SET v1 = (select ejemplares_libro from libros where codigo_libro like
cod1);
SET v2 = (select ejemplares_libro from libros where codigo_libro like
cod2);
if v1 > v2 then
set mensaje = cod1;
else
set mensaje = cod2;
END if;
RETURN mensaje;
END $$
select fn_comparacion(3,5)as mayor_ejemplar
Argumento: dado que se debe comparar dos libros mediante el código del mismo,
hacemos que el usuario ingrese estos códigos mediante 2 parámetros de entradas.
Luego se compara el número de ejemplares mediante las variables v1 y v2 que son las
que tienen el código del libro que el usuario ingreso, y finalmente mostrara el código
del que tiene más ejemplares.
c. Realizar una función que permita calcular el total de ejemplares existente dada el
área.
delimiter $$
create function fn_total_ejemplares(area varchar(25))
returns int
BEGIN
DECLARE cantidad INT;
set cantidad = (SELECT SUM(ejemplares_libro)
FROM libros
WHERE area_libro LIKE area);
RETURN cantidad;
END $$