Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
DE DATOS
1. Construya los siguientes procedimientos Almacenados para insercin de
registros:
En MySQL; para las tablas Profesor, Curso, Estudiante, Estudiantexcurso.
Create procedure colegio() Select * from profesor, curso, estudiante, estudiantexcu
rso;
call colegio();
En ORACLE; para las tablas Cliente, Articulo, Pedido.
Create or replace PROCEDURE negocios(unos out SYS_REFCURSOR)
as
BEGIN
OPEN unos FOR
SELECT *
FROM cliente, articulo, pedido;
END negocios;
En el Motor de su preferencia (ORACLE O MySQL), para las tablas, Compaa,
TiposAutomotores, Automotores, Aseguramientos, Incidentes.
Create procedure seguros() Select * from compaia, tiposautomotores, automotore
s, aseguramientos, incidentes;
call seguros();
2. En Oracle construya los procedimientos almacenados para realizar los
siguientes procesos:
Muestre los salarios de los profesores ordenados por categora.
create or replace PROCEDURE salarioprofesor(uno out SYS_REFCURSOR)
as
BEGIN
OPEN uno FOR
SELECT sal_prof
FROM profesor ORDER BY cate_prof;
END salarioprofesor;
Muestre los cursos cuyo valor sea mayor a $500.000.
Create or replace PROCEDURE valorcurso(uno out SYS_REFCURSOR)
as
BEGIN
OPEN uno FOR
SELECT nom_curs
FROM curso WHERE valor_cur>='500000';
END valorcurso;
Visualizar el nombre, apellido y direccin de todos aquellos clientes que hayan
realizado un pedido el da 25 /02/2012.
Create or replace PROCEDURE pedidos02252012(uno out SYS_REFCURSOR)
as
BEGIN
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.
CREATE PROCEDURE incidentesunherido(uno int) SELECTincidentes.inciplaca, i
ncidentes.incicantheridos,aseguramientos.asefechainicio, aseguramientos.asecost
o,aseguramientos.aseestado, aseguramientos.asevaloraseguradoFROM incidente
s, aseguramientos WHERE incicantheridos=uno
call incidentesunherido('1')
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.
CREATE PROCEDURE incidentesFLL420(fll varchar(6)) SELECTincidentes.incife
cha,incidentes.incilugar,incidentes.incicantheridos,aseguramientos.asefechainicio,
aseguramientos.asefechaexpiracion,aseguramientos.asevaloraseguradoFROM inc
identes,aseguramientos WHERE inciplaca=fll
call incidentesFLL420('FLL420')
4. Realice las Siguientes funciones en MySQL:
Cuente el nmero de estudiantes cuya edad sea mayor a 22.
CREATE FUNCTION `contarestudiantes`(`input` INT) RETURNS INT(11) NOT DE
TERMINISTIC CONTAINS SQL SQL SECURITY DEFINER BEGIN DECLARE can
tidad int; SELECT COUNT(*) INTOcantidad FROM estudiante WHERE edad_est>'
22'; RETURN cantidad; END
SELECT `contarestudiantes`(@p0) AS `contarestudiantes`
Muestre el nombre y la edad del estudiante ms joven.
CREATE FUNCTION `estudiantejoven`(`input` INT) RETURNS INT(11) NOT DETE
RMINISTIC CONTAINS SQL SQL SECURITY DEFINER BEGIN DECLARE joven i
nt; SelectMIN(edad_est) INTO joven from estudiante; RETURN joven; END
SELECT `estudiantejoven`(@p0) AS `estudiantejoven`;
Calcule el valor promedio de los cursos cuyas horas sean mayores a 40.
CREATE FUNCTION `valorpromedio`(`input` INT) RETURNS INT(11) NOT DETE
RMINISTIC CONTAINS SQL SQL SECURITY DEFINER BEGIN DECLARE prome
dio int; SELECT AVG(valor_cur) INTO promedioFROM curso WHERE horas_cur>
='40'; RETURN promedio; END
SELECT `valorpromedio`(@p0) AS `valorpromedio`;
Obtener el sueldo promedio de los profesores de la categora 1.
CREATE FUNCTION `sueldopromedio`(`input` INT) RETURNS INT(11) NOT DET
ERMINISTIC CONTAINS SQL SQL SECURITY DEFINER BEGIN DECLARE prom
edio int; SELECT AVG(sal_prof) INTO promedioFROM profesor WHERE cate_prof
='1'; RETURN promedio; END
SELECT `sueldopromedio`(@p0) AS `sueldopromedio`;
Muestre el nombre del profesor con menor sueldo.
CREATE FUNCTION `menorsueldo`(`inout` INT) RETURNS VARCHAR(30) NOT
DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER BEGIN DECLARE
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` F
OR EACH ROW INSERT INTO trigger_automotores (PlacaAnterior, MarcaAnterior,
TipoAnterior, ModeloAnterior,NumeroPasajerosAnterior, CilindrajeAnterior, Numero
ChasisAnterior, PlacaNuevo, MarcaNuevo, TipoNuevo, ModeloNuevo, NumeroPas
ajerosNuevo, CilindrajeNuevo, NumeroChasisNuevo)VALUES (OLD.autoplaca, OL
D.automarca, OLD.autotipo, OLD.automodelo, OLD.autonumpasajeros, OLD.autoc
ilindraje, OLD.autonumchasis, NEW.autoplaca, NEW.automarca, NEW.autotipo,N
EW.automodelo, NEW.autonumpasajeros, NEW.autocilindraje, NEW.autonumchas
is)
Aseguramientos
CREATE TRIGGER `aseguramientosupdate` BEFORE UPDATE ON `aseguramien
tos` FOR EACH ROW INSERT INTO trigger_aseguramientos(CodigoAnterior, Fec
haInicioAnterior,FechaExpiracionAnterior, ValorAseguradoAnterior, EstadoAnterior,
CostoAnterior, PlacaAnterior, CodigoNuevo, FechaInicioNuevo, FechaExpiracionN
uevo, ValorAseguradoNuevo,EstadoNuevo, CostoNuevo, PlacaNuevo) VALUES (
OLD.asecodigo, OLD.asefechainicio, OLD.asefechaexpiracion, OLD.asevaloraseg
urado, OLD.aseestado, OLD.asecosto, OLD.aseplaca,NEW.asecodigo, NEW.asef
echainicio, NEW.asefechaexpiracion, NEW.asevalorasegurado, NEW.aseestado,
NEW.asecosto, NEW.aseplaca)
Incidentes
CREATE TRIGGER `incidentesupdate` BEFORE UPDATE ON `incidentes` FOR E
ACH ROW INSERT INTO trigger_incidentes(CodigoAnterior, FechaAnterior, Placa
Anterior, LugarAnterior,CantidadHeridosAnterior, CantidadFatalidadesAnterior, Can
tidadAutosInvolucradosAnterior, CodigoNuevo, FechaNuevo, PlacaNuevo, LugarN