Professional Documents
Culture Documents
DE DATOS
Presentado por:
Fabian Danilo Leon
Presentado a:
Camilo Andrs Garay Guevara
Sena
2017
USAR LENGUAJE TRANSACCIONAL SOBRE LA BASE
DE DATOS
1. Construya los siguientes procedimientos Almacenados para insercin de
registros:
En MySQL; para las tablas Profesor, Curso, Estudiante, Estudiantexcurso.
call colegio();
as
BEGIN
SELECT *
END negocios;
call seguros();
2. En Oracle construya los procedimientos almacenados para realizar los siguientes procesos:
as
BEGIN
SELECT sal_prof
END salarioprofesor;
as
BEGIN
SELECT nom_curs
END valorcurso;
Visualizar el nombre, apellido y direccin de todos aquellos clientes que hayan realizado un
pedido el da 25 /02/2012.
as
BEGIN
END pedidos02252012;
as
BEGIN
END todospedidos;
Listar los todos datos de los automotores cuya pliza expira en octubre de 2013, este reporte
debe visualizar la placa, el modelo, la marca, nmero de pasajeros, cilindraje nombre de
automotor, el valor de la pliza y el valor asegurado.
as
BEGIN
OPEN uno FOR
END polizaoctubre;
3. En MySQL construya los procedimientos almacenados para realizar los siguientes procesos:
Muestre todos los campos de la tabla curso en orden ascendente segn el valor.
CREATE PROCEDURE `cursoascendente`() NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFIN
ER Select * from curso ORDER BY valor_cur ASC;
call cursoascendente();
Mostrar los pedidos con los respectivos artculos (cdigo, nombre, valor y cantidad pedida).
call pedidosyarticulos()
call empresafundada()
call apellidosclientes()
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.
call incidentesFLL420('FLL420')
Calcule el valor promedio de los cursos cuyas horas sean mayores a 40.
BEGIN
RETURN valor;
END;
BEGIN
RETURN valor;
END;
BEGIN
SELECT asecodigo INTO valor FROM aseguramientos WHERE asecosto=(select min(asecosto) from
aseguramientos );
RETURN valor;
END;
Visualizar los incidentes con el mnimo nmero de autos involucrados, de este incidente
visualizar el estado de la pliza y el valor asegurado.
BEGIN
RETURN valor;
END;
Visualizar los datos de la pliza cuyo valor asegurado es el ms costoso, este reporte adems de
visualizar todos los datos de la pliza, debe presentar todos los datos del vehculo que tiene dicha
pliza.
BEGIN
RETURN valor;
END;
Actualizacin:
Profesor
CREATE TRIGGER `profesorupdate` BEFORE UPDATE ON `profesor` FOR EACH ROW INSERT INTO tri
gger_profesores (DocumentoAnterior, NombreAnterior,ApellidoAnterior, CategoriaAnterior, Salari
oAnterior, DocumentoNuevo, NombreNuevo, ApellidoNuevo, CategoriaNuevo, SalarioNuevo) VAL
UES (OLD.doc_prof, OLD.nom_prof, OLD.ape_prof,OLD.cate_prof, OLD.sal_prof, NEW.doc_prof, N
EW.nom_prof, NEW.ape_prof, NEW.cate_prof, NEW.sal_prof);
Curso
CREATE TRIGGER `cursoupdate` BEFORE UPDATE ON `curso` FOR EACH ROW INSERT INTO trigger_
cursos(CodigoAnterior, NombreAnterior, HorasAnterior, ValorAnterior, CodigooNuevo, NombreNu
evo,HorasNuevo, ValorNuevo) VALUES (OLD.cod_curs, OLD.nom_curs, OLD.horas_cur, OLD.valor_
cur, NEW.cod_curs, NEW.nom_curs, NEW.horas_cur,NEW.valor_cur);
Estudiante
CREATE TRIGGER `estudianteupdate` BEFORE UPDATE ON `estudiante` FOR EACH ROW INSERT INT
O trigger_estudiante (DocumentoAnterior, NombreAnterior, ApellidoAnterior, EdadAnterior,Docu
mentoNuevo, NombreNuevo, ApellidoNuevo, EdadNuevo) VALUES (OLD.doc_est, OLD.nom_est, O
LD.ape_est, OLD.edad_est, NEW.doc_est, NEW.nom_est, NEW.ape_est, NEW.edad_est);
Borrado
Profesor
CREATE TRIGGER `profesordelete` AFTER DELETE ON `profesor` FOR EACH ROW INSERT INTO trigg
er_profesores (DocumentoAnterior, NombreAnterior, ApellidoAnterior, CategoriaAnterior,SalarioA
nterior, DocumentoNuevo, NombreNuevo, ApellidoNuevo, CategoriaNuevo, SalarioNuevo) VALUE
S (OLD.doc_prof, OLD.nom_prof, OLD.ape_prof, OLD.cate_prof, OLD.sal_prof);
Curso
CREATE TRIGGER `cursodelete` AFTER DELETE ON `curso` FOR EACH ROW INSERT INTO trigger_cur
sos(CodigoAnterior, NombreAnterior, HorasAnterior, ValorAnterior, CodigooNuevo,NombreNuevo
,HorasNuevo, ValorNuevo) VALUES (OLD.cod_curs, OLD.nom_curs, OLD.horas_cur, OLD.valor_cur);
Estudiante
CREATE TRIGGER `estudiantedelete` AFTER DELETE ON `estudiante` FOR EACH ROW INSERT INTO t
rigger_estudiante (DocumentoAnterior,NombreAnterior, ApellidoAnterior, EdadAnterior, Docume
ntoNuevo, NombreNuevo, ApellidoNuevo, EdadNuevo) VALUES (OLD.doc_est, OLD.nom_est, OLD.
ape_est, OLD.edad_est)
Actualizacin:
Cliente
create or replace trigger "CLIENTEUPDATE"
BEFORE
update on "CLIENTE"
for each row
begin
INSERT INTO trigger_cliente (CodigoAnterior, NombreAnterior, ApellidoAnterior,
DireccionAnterior,DepartamentoAnterior, MesCumpleAnterior, CodigoNuevo,
NombreNuevo, ApellidoNuevo, DireccionNuevo, DepartamentoNuevo,
MesCumpleNuevo) VALUES (:OLD.id_cli, :OLD.nom_cli, :OLD.ape_cli,
:OLD.dir_cli, :OLD.dep_cli, :OLD.mes_cum_cli, :NEW.id_cli,
:NEW.nom_cli, :NEW.ape_cli, :NEW.dir_cli, :NEW.dep_cli, :NEW.mes_cum_cli);
end;
Articulo
create or replace trigger "ARTICULOUPDATE"
BEFORE
update on "ARTICULO"
for each row
begin
INSERT INTO trigger_articulo (CodigoAnterior, NombreAnterior, AutorAnterior,
EditorialAnterior, PrecioAnterior, CodigoNuevo, NombreNuevo, AutorNuevo,
EditorialNuevo, PrecioNuevo) VALUES (:OLD.id_art, :OLD.tit_art, :OLD.aut_art,
:OLD.edi_art, :OLD.prec_art, :NEW.id_art, :NEW.tit_art, :NEW.aut_art,
:NEW.edi_art, :NEW.prec_art);
end;
Pedido
create or replace trigger "PEDIDOUPDATE"
BEFORE
update on "PEDIDO"
for each row
begin
INSERT INTO trigger_pedido (CodigoAnterior, DocumentoClienteAnterior,
FechaAnterior, ValorAnterior, CodigoNuevo, DocumentoClienteNuevo,
FechaNuevo, ValorNuevo) VALUES (:OLD.id_ped, :OLD.id_cli_ped, :OLD.fec_ped,
:OLD.val_ped, :NEW.id_ped, :NEW.id_cli_ped, :NEW.fec_ped, :NEW.val_ped);
end;
Borrado
Cliente
create or replace trigger "CLIENTEDELETE"
AFTER
delete on "CLIENTE"
for each row
begin
INSERT INTO trigger_cliente (CodigoAnterior, NombreAnterior, ApellidoAnterior,
DireccionAnterior,DepartamentoAnterior, MesCumpleAnterior, CodigoNuevo,
NombreNuevo, ApellidoNuevo, DireccionNuevo, DepartamentoNuevo,
MesCumpleNuevo) VALUES (:OLD.id_cli, :OLD.nom_cli, :OLD.ape_cli,
:OLD.dir_cli, :OLD.dep_cli, :OLD.mes_cum_cli);
end;
Articulo
create or replace trigger "ARTICULODELETE"
AFTER
delete on "ARTICULO"
for each row
begin
INSERT INTO trigger_articulo (CodigoAnterior, NombreAnterior, AutorAnterior,
EditorialAnterior, PrecioAnterior, CodigoNuevo, NombreNuevo, AutorNuevo,
EditorialNuevo, PrecioNuevo) VALUES (:OLD.id_art, :OLD.tit_art, :OLD.aut_art,
:OLD.edi_art, :OLD.prec_art);
end;
Pedido
create or replace trigger "PEDIDODELETE"
AFTER
delete on "PEDIDO"
for each row
begin
INSERT INTO trigger_pedido (CodigoAnterior, DocumentoClienteAnterior,
FechaAnterior, ValorAnterior, CodigoNuevo, DocumentoClienteNuevo,
FechaNuevo, ValorNuevo) VALUES (:OLD.id_ped, :OLD.id_cli_ped, :OLD.fec_ped,
:OLD.val_ped);
end;
En el Motor de su preferencia (ORACLE O MySQL), para las tablas, Automotores,
Aseguramientos, Incidentes.
Actualizacin:
Automotores
CREATE TRIGGER `automotoresupdate` BEFORE UPDATE ON `automotores` FOR EACH ROW INSER
T INTO trigger_automotores (PlacaAnterior, MarcaAnterior, TipoAnterior, ModeloAnterior,Numer
oPasajerosAnterior, CilindrajeAnterior, NumeroChasisAnterior, PlacaNuevo, MarcaNuevo, TipoNue
vo, ModeloNuevo, NumeroPasajerosNuevo, CilindrajeNuevo, NumeroChasisNuevo)VALUES (OLD.a
utoplaca, OLD.automarca, OLD.autotipo, OLD.automodelo, OLD.autonumpasajeros, OLD.autocilind
raje, OLD.autonumchasis, NEW.autoplaca, NEW.automarca, NEW.autotipo,NEW.automodelo, NE
W.autonumpasajeros, NEW.autocilindraje, NEW.autonumchasis)
Aseguramientos
Incidentes
CREATE TRIGGER `incidentesupdate` BEFORE UPDATE ON `incidentes` FOR EACH ROW INSERT INT
O trigger_incidentes(CodigoAnterior, FechaAnterior, PlacaAnterior, LugarAnterior,CantidadHeridos
Anterior, CantidadFatalidadesAnterior, CantidadAutosInvolucradosAnterior, CodigoNuevo, FechaN
uevo, PlacaNuevo, LugarNuevo, CantidadHeridosNuevo,CantidadFatalidadesNuevo, CantidadAutos
InvolucradosNuevo) VALUES (OLD.incicodigo, OLD.incifecha, OLD.inciplaca, OLD.incilugar, OLD.inci
cantheridos, OLD.incicanfatalidades,OLD.incicanautosinvolucrados, NEW.incicodigo, NEW.incifech
a, NEW.inciplaca, NEW.incilugar, NEW.incicantheridos, NEW.incicanfatalidades, NEW.incicanautosi
nvolucrados)
Borrado
Automotores
CREATE TRIGGER `automotoresdelete` AFTER DELETE ON `automotores` FOR EACH ROW INSERT IN
TO trigger_automotores (PlacaAnterior, MarcaAnterior, TipoAnterior, ModeloAnterior,NumeroPas
ajerosAnterior, CilindrajeAnterior, NumeroChasisAnterior, PlacaNuevo, MarcaNuevo, TipoNuevo,
ModeloNuevo, NumeroPasajerosNuevo, CilindrajeNuevo, NumeroChasisNuevo)VALUES (OLD.auto
placa, OLD.automarca, OLD.autotipo, OLD.automodelo, OLD.autonumpasajeros, OLD.autocilindraj
e, OLD.autonumchasis)
Aseguramientos
CREATE TRIGGER `aseguramientosdelete` AFTER DELETE ON `aseguramientos` FOR EACH ROW INS
ERT INTO trigger_aseguramientos(CodigoAnterior, FechaInicioAnterior,FechaExpiracionAnterior, V
alorAseguradoAnterior, EstadoAnterior, CostoAnterior, PlacaAnterior, CodigoNuevo, FechaInicioN
uevo, FechaExpiracionNuevo, ValorAseguradoNuevo,EstadoNuevo, CostoNuevo, PlacaNuevo) VAL
UES (OLD.asecodigo, OLD.asefechainicio, OLD.asefechaexpiracion, OLD.asevalorasegurado, OLD.as
eestado, OLD.asecosto, OLD.aseplaca)
Incidentes
CREATE TRIGGER `incidentesdelete` AFTER DELETE ON `incidentes` FOR EACH ROW INSERT INTO tr
igger_incidentes(CodigoAnterior, FechaAnterior, PlacaAnterior, LugarAnterior,CantidadHeridosAnt
erior, CantidadFatalidadesAnterior, CantidadAutosInvolucradosAnterior, CodigoNuevo, FechaNuev
o, PlacaNuevo, LugarNuevo, CantidadHeridosNuevo,CantidadFatalidadesNuevo, CantidadAutosInv
olucradosNuevo) VALUES (OLD.incicodigo, OLD.incifecha, OLD.inciplaca, OLD.incilugar, OLD.incican
theridos, OLD.incicanfatalidades,OLD.incicanautosinvolucrados)