1.
Diseña una función que permita tomar 3 números y con ellos realizar las cuatro operaciones básicas
(+, -, *, /)
DELIMITER //
CREATE FUNCTION operaciones_basicas(a DOUBLE, b DOUBLE, c DOUBLE)
RETURNS VARCHAR(255)
DETERMINISTIC
BEGIN
DECLARE resultado VARCHAR(255);
SET resultado = CONCAT(
'Suma: ', a + b + c, '; ',
'Resta: ', a - b - c, '; ',
'Multiplicación: ', a * b * c, '; ',
'División (a/b)/c: ', IF(b != 0 AND c != 0, a / b / c, 'Indefinido'), '; ',
'División (a/c)/b: ', IF(c != 0 AND b != 0, a / c / b, 'Indefinido'), '; ',
'División (b/c)/a: ', IF(c != 0 AND a != 0, b / c / a, 'Indefinido')
);
RETURN resultado;
END //
DELIMITER ;
2. Diseñar una función que permita registrar un valor y con él calcularle el IVA (19%),
DESCUENTO (5%) se debe mostrar el valor real y los cálculos obtenidos
DELIMITER //
CREATE FUNCTION calcular_iva_descuento(valor DECIMAL(10, 2))
RETURNS VARCHAR(255)
DETERMINISTIC
BEGIN
DECLARE iva DECIMAL(10, 2);
DECLARE descuento DECIMAL(10, 2);
DECLARE total DECIMAL(10, 2);
-- Cálculo del IVA (19%)
SET iva = valor * 0.19;
-- Cálculo del Descuento (5%)
SET descuento = valor * 0.05;
-- Cálculo del Total
SET total = valor + iva - descuento;
-- Formateamos el resultado para mostrarlo
RETURN CONCAT(
'Valor Real: ', FORMAT(valor, 2),
', IVA (19%): ', FORMAT(iva, 2),
', Descuento (5%): ', FORMAT(descuento, 2),
', Total: ', FORMAT(total, 2)
);
END //
DELIMITER ;
3. Diseñar una función que permita utilizar la base de datos del DANE, utilice el
campo Salario de la tabla Empleado y calcule los parafiscales (Salud y Pensión)
DELIMITER //
CREATE FUNCTION calcular_parafiscales(emp_id VARCHAR(10))
RETURNS VARCHAR(255)
BEGIN
DECLARE salario INT DEFAULT 0; -- Inicializar salario
DECLARE salud DECIMAL(10, 2);
DECLARE pension DECIMAL(10, 2);
DECLARE total_parafiscales DECIMAL(10, 2);
-- Obtener el salario del empleado usando TRIM
SELECT Salario INTO salario
FROM empleado
WHERE TRIM(Id_E) = TRIM(emp_id);
-- Verificar si el salario es nulo
IF salario IS NULL OR salario = 0 THEN
RETURN 'Empleado no encontrado o sin salario registrado';
END IF;
-- Calcular los parafiscales
SET salud = salario * 0.125; -- 12.5% para Salud
SET pension = salario * 0.08; -- 8% para Pensión
SET total_parafiscales = salud + pension;
-- Devolver los resultados
RETURN CONCAT('Salario: ', salario, ', Salud: ', salud, ', Pensión: ', pension, ', Total Parafiscales: ',
total_parafiscales);
END //
DELIMITER ;
4. SELECT SUM(Cnt_Habitantes) AS Total_Habitantes_Colombia
FROM region;
5.
DELIMITER //
CREATE FUNCTION incrementar_saldo(codigo_usuario VARCHAR(20))
RETURNS VARCHAR(50)
DETERMINISTIC
BEGIN
DECLARE saldo_actual INT;
DECLARE mensaje VARCHAR(50);
-- Obtenemos el saldo actual del usuario
SELECT saldo INTO saldo_actual
FROM tblusuarios
WHERE usuario = codigo_usuario;
-- Verificamos si el usuario existe
IF saldo_actual IS NOT NULL THEN
-- Incrementamos el saldo en un 25%
SET saldo_actual = saldo_actual * 1.25;
-- Actualizamos el saldo en la tabla
UPDATE tblusuarios
SET saldo = saldo_actual
WHERE usuario = codigo_usuario;
SET mensaje = CONCAT('Saldo incrementado en 25% para el usuario ', codigo_usuario);
ELSE
SET mensaje = 'Usuario no encontrado';
END IF;
RETURN mensaje;
END //
DELIMITER ;