0% encontró este documento útil (0 votos)
46 vistas4 páginas

Lab 13

El documento detalla la creación de procedimientos almacenados en Oracle y MySQL para gestionar datos relacionados con profesores, cursos, clientes, pedidos, automotores y aseguramientos. También incluye funciones para realizar cálculos y disparadores para controlar actualizaciones y borrados en las tablas. Se presentan ejemplos específicos de consultas y estructuras de datos para cada procedimiento y función.

Cargado por

Margarita
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)
46 vistas4 páginas

Lab 13

El documento detalla la creación de procedimientos almacenados en Oracle y MySQL para gestionar datos relacionados con profesores, cursos, clientes, pedidos, automotores y aseguramientos. También incluye funciones para realizar cálculos y disparadores para controlar actualizaciones y borrados en las tablas. Se presentan ejemplos específicos de consultas y estructuras de datos para cada procedimiento y función.

Cargado por

Margarita
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

#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)

También podría gustarte