#En Oracle construya los procedimientos almacenados para realizar los siguientes procesos: #· Muestre los salarios de los profesores ordenados por categoría. CREATE PROCEDURE salarios() SELECT * FROM profesor group by cate_prof; call salarios(); #· Muestre los cursos cuyo valor sea mayor a $500.000. CREATE PROCEDURE cursovalor() SELECT * FROM curso WHERE valor_cur > 500000; call cursovalor(); #· Visualizar el nombre, apellido y dirección de todos # aquellos clientes que hayan realizado un pedido el día 25 /02/2012. CREATE PROCEDURE clienteped() SELECT cliente.nom_cli, cliente.ape_cli, pedido.fec_ped FROM cliente, pedido WHERE fec_ped = '2012/02/25'; call clienteped(); #· Listar todos los pedidos realizados incluyendo el nombre del artículo. CREATE PROCEDURE pedidoarti() SELECT * FROM articulo, pedido; call pedidoarti(); #· Listar los todos datos de los automotores cuya póliza expira en octubre de 2013, este reporte debe visualizar la placa, el modelo, la marca, número de pasajeros, c ilindraje nombre de automotor, el valor de la póliza y el valor asegurado. CREATE procedure poliza() select * from automotores, aseguramientos where asefechaexpiracion = '2013-09-30'; call poliza(); #2. En MySQL construya los procedimientos almacenados para realizar los siguient es procesos: #· Muestre todos los campos de la tabla curso en orden ascendente según el valor. create procedure curso() select * from curso order by valor_cur; call curso(); #· Mostrar los pedidos con los respectivos artículos(código, nombre, valor y cantidad pedida). create procedure pedidos() select articulo.id_art, articulo.tit_art, articulo.prec_art, articuloxpedido.can _art_artped from articulo, articuloxpedido; call pedidos (); #· Visualizar los datos de las empresas fundadas entre el año 1991 y 1998. create procedure emp() select * from compania where comanofun between '1991' and '1998'; call emp(); #3. Usar lenguaje transaccional sobre la base de datos #· Visualizar todos los clientes organizados por apellido.
create procedure cliente() select * from cliente order by ape_cli; call cliente(); #· Visualizar los datos de los incidentes que han tenido un(1) herido, este report e debe visualizar #la placa del automotor, con los respectivos datos de la póliza como son fecha de inicio, valor, estado #y valor asegurado. create procedure incidente() select incidentes.incicantheridos, automotores.autoplaca, aseguramientos.asefech ainicio, aseguramientos.asecosto, aseguramientos.aseestado, aseguramientos.aseva lorasegurado from automotores, aseguramientos, incidentes where incidentes.incicantheridos=1; call incidente(); #· Visualizar los incidentes del vehículo con placas " FLL420", este reporte debe vi sualizar #la fecha, el lugar, la cantidad de heridos del incidente, la fecha de inicio la de expiración de la póliza #y el valor asegurado. create procedure fll() select automotores.autoplaca, incidentes.incifecha, incidentes.incilugar, incide ntes.incicantheridos, aseguramientos.asefechainicio, aseguramientos.asefechaexpi racion, aseguramientos.asevalorasegurado from aseguramientos, incidentes, automo tores where automotores.autoplaca='FLL420'; CALL fll(); #4. Realice las Siguientes funciones en MySQL: #· Cuente el número de estudiantes cuya edad sea mayor a 22. DELIMITER // create function contarest () returns int begin declare cantidad int; select count(*) into cantidad from estudiante; return cantidad; end// #· Muestre el nombre y la edad del estudiante más joven. SELECT `nom_est`, min(`edad_est`) FROM `estudiante`; #· Calcule el valor promedio de los cursos cuyas horas sean mayores a SELECT AVG(`valor_cur`) FROM curso WHERE `horas_cur`>'40'; #· Obtener el sueldo promedio de los profesores de la categoría 1. SELECT AVG(`sal_prof`) FROM `profesor` WHERE `cate_prof`='1' #· Muestre el nombre del profesor con menor sueldo. Select * from curso order by `valor_cur` asc #5. Realice las Siguientes funciones en ORACLE: #· Visualizar el nombre del cliente, la fecha y el valor del pedido más costoso. SELECT MAX(pedido.val_ped), cliente.nom_cli,pedido.fec_ped, pedido.val_ped FROM cliente, pedido WHERE1 #· Mostrar cuantos artículos se tienen de cada editorial.
SELECT COUNT(`edi_art`) FROM `articulo` WHERE 1 #· Visualizar todos los datos de la póliza más costosa. SELECT * FROM `aseguramientos` where 1 ORDER BY `asevalorasegurado` desc #· Visualizar los incidentes con el mínimo número de autos involucrados, de este incid ente visualizar el estado de la póliza y el valor asegurado. SELECT MIN(`incicanautosinvolucrados`),aseguramientos.aseestado,aseguramientos.a sevalorasegurado FROM aseguramientos,incidentes WHERE 1 #6. Construya los siguiente disparadores para controlar la actualización y borrado de registros #· En MySQL; para las tablas Profesor, Curso, Estudiante. CREATE TABLE auditoria_profesores; (doc_prof_Anterior int, nom_prof_Anterior varchar(30),ape_prof_Anterior varchar (30), cate_profe_Anterior int(11), sal:prof_Anterior int (11), doc_prof_Nuevo int, nom_prof_Nuevo varchar (30), ape_prof_Nuevo varchar (30), ca te_prof_Nuevo int (11), sal_prof_Nuevo int (11) CREATE TRIGGER `profesorupdate` BEFORE UPDATE ON `profesor` FOR EACH ROW INSERT INTO auditoria_profesores (doc_prof_Anterior, nom_prof_Anter ior,ape_prof_Anterior, cate_profe_Anterior, sal:prof_Anterior, doc_prof_Nuevo, nom_prof_Nuevo, ape_prof_Nuevo, cate_prof_Nuevo, sal_prof_Nuevo) VALUES (OLD.doc_prof, OLD.nom_prof, OLD.ape_prof,OLD.cate_prof, OLD.sal_prof, NE W.doc_prof, NEW.nom_prof, NEW.ape_prof, NEW.cate_prof, NEW.sal_prof) #· En el Motor de su preferencia (ORACLE O MySQL), para las tablas, Automotores, A seguramientos, Incidentes. CREATE TRIGGER `automotoresupdate` BEFORE UPDATE ON `automotores` FOR EACH ROW INSERT INTO trigger_automotores (Pla caAnterior, MarcaAnterior, TipoAnterior, ModeloAnterior,NumeroPasajerosAnterior, CilindrajeAnterior, NumeroChasisAnterior, PlacaNuevo, MarcaNuevo, TipoNuevo, Mo deloNuevo, NumeroPasajerosNuevo, CilindrajeNuevo, NumeroChasisNuevo) VALUES (OLD.autoplaca, OLD.automarca, OLD.autotipo, OLD.automodelo, OLD.autonump asajeros, OLD.autocilindraje, OLD.autonumchasis, NEW.autoplaca, NEW.automarca, N EW.autotipo,NEW.automodelo, NEW.autonumpasajeros, NEW.autocilindraje, NEW.autonu mchasis) CREATE TRIGGER `aseguramientosupdate` BEFORE UPDATE ON `aseguramientos` FOR EACH ROW INSERT INTO trigger_aseguramiento s(CodigoAnterior, FechaInicioAnterior,FechaExpiracionAnterior, ValorAseguradoAnt erior, EstadoAnterior, CostoAnterior, PlacaAnterior, CodigoNuevo, FechaInicioNue vo, FechaExpiracionNuevo, ValorAseguradoNuevo,EstadoNuevo, CostoNuevo, PlacaNuev o) VALUES (OLD.asecodigo, OLD.asefechainicio, OLD.asefechaexpiracion, OLD.asevalora segurado, OLD.aseestado, OLD.asecosto, OLD.aseplaca,NEW.asecodigo, NEW.asefechai nicio, NEW.asefechaexpiracion, NEW.asevalorasegurado, NEW.aseestado, NEW.asecost o, NEW.aseplaca) CREATE TRIGGER `incidentesupdate` BEFORE UPDATE ON `incidentes` FOR EACH ROW INSERT INTO trigger_incidentes(Codigo Anterior, FechaAnterior, PlacaAnterior, LugarAnterior,CantidadHeridosAnterior, C antidadFatalidadesAnterior, CantidadAutosInvolucradosAnterior, CodigoNuevo, Fech aNuevo, PlacaNuevo, LugarNuevo, CantidadHeridosNuevo,CantidadFatalidadesNuevo, C antidadAutosInvolucradosNuevo) VALUES (OLD.incicodigo, OLD.incifecha, OLD.inciplaca, OLD.incilugar, OLD.incican
theridos, OLD.incicanfatalidades,OLD.incicanautosinvolucrados, NEW.incicodigo, N EW.incifecha, NEW.inciplaca, NEW.incilugar, NEW.incicantheridos, NEW.incicanfata lidades, NEW.incicanautosinvolucrados)