Professional Documents
Culture Documents
SOLUCION LABORATORIO
Muestre todos los campos de la tabla curso en orden ascendente segn el valor.
Visualizar los datos de los incidentes que han tenido un(1) herido,este reporte
debe visualizar la placa del automotor, con los respectivos
datos de la pliza como son fecha de inicio, valor, estado y valor asegurado.
Visualizar los incidentes del vehculo con placas " FLL420", este reporte debe
visualizar la fecha, el lugar, la cantidad de heridos del
incidente, la fecha de inicio la de expiracin de la pliza y el valor asegurado.
DELIMITER //
CREATE FUNCTION NumeroEstudiantes()
RETURNS INT
BEGIN
DECLARE numero INT;
--
SELECT COUNT(1) INTO numero
FROM estudiante
WHERE edad_est > 22;
--
RETURN numero;
END
//
DELIMITER //
CREATE FUNCTION NombreEdadEstudianteMasJoven()
RETURNS VARCHAR(30)
BEGIN
DECLARE pnombre VARCHAR(30);
DECLARE pedad VARCHAR(30);
--
SELECT nom_est, edad_est
INTO pnombre, pedad
FROM estudiante
WHERE edad_est = (SELECT MIN(edad_est)
FROM estudiante);
--
RETURN CONCAT(pnombre, " ", pedad);
END//
Calcule el valor promedio de los cursos cuyas horas sean mayores a 40.
DELIMITER //
CREATE FUNCTION ValorPromedioCursos()
RETURNS INT
BEGIN
DECLARE pPromedio DECIMAL(11, 4);
--
SELECT AVG(valor_cur) INTO pPromedio
FROM curso
WHERE horas_cur > 40;
--
RETURN pPromedio ;
END//
DELIMITER //
CREATE FUNCTION SueldoPromedioProfesores()
RETURNS INT
BEGIN
DECLARE pPromedio DECIMAL(11, 4);
--
SELECT AVG(sal_prof) INTO pPromedio
FROM profesor
WHERE cate_prof = 1;
--
RETURN pPromedio ;
END//
--
DELIMITER //
CREATE FUNCTION NombreProfesorMenorSueldo()
RETURNS VARCHAR(60)
BEGIN
DECLARE pNombre VARCHAR(60);
--
SELECT CONCAT(nom_prof, ape_prof) INTO pNombre
FROM profesor
WHERE sal_prof = (SELECT MIN(sal_prof)
FROM profesor);
--
RETURN pNombre ;
END//
-- profesor
-- Creamos tabla de PROFESOR
CREATE TABLE auditoria_profesor(id_audi INT(11) AUTO_INCREMENT PRIMARY KEY,
audi_nom_prof_anterior
VARCHAR(30) NOT NULL ,
audi_ape_prof_anterior
VARCHAR(30) NOT NULL ,
audi_cate_prof_anterior INT
NOT NULL ,
audi_sal_prof_anterior INT
NOT NULL ,
audi_nom_prof_nuevo
VARCHAR(30) ,
audi_ape_prof_nuevo
VARCHAR(30) ,
audi_cate_prof_nuevo INT
,
audi_sal_prof_nuevo INT
,
audi_fechamodificacion DATETIME
,
audi_usuario
VARCHAR(50) ,
audi_doc_prof
VARCHAR(11) NOT NULL ,
audi_acccion
VARCHAR(45) NOT NULL
);
)
VALUES(old.nom_prof , old.ape_prof , old.cate_prof, old.sal_prof ,
new.nom_prof , new.ape_prof , new.cate_prof ,
new.sal_prof,
now(), current_user(), new.doc_prof, 'Actualizacin');
END;//
-- PROBAMOS ACTUALIZANDO UN REGISTRO
UPDATE PROFESOR
SET nom_prof = 'Martha XXX',
ape_prof = 'Rojas XXX',
cate_prof = 4 ,
sal_prof = 1000000
WHERE doc_prof = '63502720';
-- CREAMOS EL TRIGGER PARA el delete
delimiter //
CREATE TRIGGER trg_profesor_delete
AFTER DELETE ON profesor
FOR EACH ROW
BEGIN
--
INSERT INTO auditoria_profesor( audi_nom_prof_anterior ,
audi_ape_prof_anterior ,
audi_cate_prof_anterior ,
audi_sal_prof_anterior ,
audi_fechamodificacion ,
audi_usuario
,
audi_doc_prof
,
audi_acccion
)
VALUES(old.nom_prof , old.ape_prof , old.cate_prof, old.sal_prof ,
now(), current_user(), old.doc_prof, 'Registro
Eliminado');
END;//
--CURSO
-- ESTUDIANTE
)
VALUES(old.nom_est , old.ape_est , old.edad_est,
new.nom_est , new.ape_est , new.edad_est ,
now(), current_user(), new.doc_est, 'Actualizacin');
END;//
)
VALUES(old.nom_est , old.ape_est , old.edad_est,
now(), current_user(), old.doc_est, 'Registro Eliminado');
END;//
);
-- automotores
audi_Autonumpasajeros_anterior,
audi_Autocilindraje_anterior ,
audi_Autonumchasis_anterior,
audi_Automarca_nuevo ,
audi_Autotipo_nuevo ,
audi_Automodelo_nuevo ,
audi_Autonumpasajeros_nuevo ,
audi_Autocilindraje_nuevo ,
audi_Autonumchasis_nuevo ,
audi_fechamodificacion ,
audi_usuario
,
audi_autoplaca
,
audi_accion
)
VALUES(old.Automarca, old.Autotipo , old.Automodelo ,
old.Autonumpasajeros, old.Autocilindraje , old.Autonumchasis ,
new.Automarca, new.Autotipo , new.Automodelo ,
new.Autonumpasajeros , new.Autocilindraje, new.Autonumchasis ,
now(), current_user(), new.autoplaca, 'Actualizacin');
END;//
audi_Autonumpasajeros_anterior,
audi_Autocilindraje_anterior ,
audi_Autonumchasis_anterior,
audi_usuario
,
audi_autoplaca
,
audi_fechamodificacion ,
audi_accion
)
VALUES(old.Automarca,old.Autotipo , old.Automodelo ,
old.Autonumpasajeros, old.Autocilindraje , old.Autonumchasis ,
now(), current_user(), old.autoplaca, 'Registro
Eliminado');
END;//
)
VALUES(old.asefechainicio, old.asefechaexpiracion ,
old.asevalorasegurado , old.aseestado, old.asecosto, old.aseplaca,
new.asefechainicio, new.asefechaexpiracion ,
new.asevalorasegurado , new.aseestado , new.asecosto, new.aseplaca,
now(), current_user(), new.asecodigo ,
'Actualizacin');
END;//
)
VALUES(old.asefechainicio , old.asefechaexpiracion ,
old.asevalorasegurado, old.aseestado, old.asecosto, old.aseplaca,
now(), current_user(), old.asecodigo, 'Registro
Eliminado');
END;//
)
VALUES(old.incifecha , old.inciplaca , old.incilugar,
old.incicantheridos , old.incicanfatalidades,old.incicanautosinvolucrados,
new.incifecha , new.inciplaca , new.incilugar ,
new.incicantheridos, new.incicanfatalidades,new.incicanautosinvolucrados,
now(), current_user(), new.incicodigo, 'Actualizacin');
END;//
)
VALUES(old.incifecha , old.inciplaca , old.incilugar,
old.incicantheridos , old.incicanfatalidades,old.incicanautosinvolucrados,
now(), current_user(), old.incicodigo, 'Registro
Eliminado');
END;//
--Solucion_Laboratorio_LenguajeTransaccional.txt