Solucion Laboratorio LenguajeTransaccional
Solucion Laboratorio LenguajeTransaccional
Solucion Laboratorio LenguajeTransaccional
Ejercicios:
Utilizando instrucciones SQL, realice las siguientes actividades:
Tomando como referencia, las entidades construidas en el
laboratorio12_SQL:
�Profesor
mysql> delimiter $
mysql> create procedure insertarprofesor (in nombre varchar(150), in apellido
varchar (150), in categoria varchar (150), in salario int (10))
-> begin
-> insert into profesor (nom_prof, ape_prof, cate_prof, sal_prof) values
(nombre, apellido, categoria, salario);
-> end $
Query OK, 0 rows affected (0.28 sec)
� Curso
mysql> delimiter $
mysql> create procedure insertarcurso (in nombre varchar(150), in horas int (10),
in valor int (10))
-> begin
-> insert into profesor (nom_curs, horas_cur, valor_cur) values (nombre, horas,
valor);
-> end $
Query OK, 0 rows affected (0.03 sec)
� Estudiante
mysql> delimiter $
mysql> create procedure insertarestudiante (in documento int (3), in nombre
varchar(150), in apellido varchar (150), in edad int (3))
-> begin
-> insert into estudiante (doc_est, nom_est, ape_est, edad_est) values
(documento, nombre, apellido, edad);
-> end $
Query OK, 0 rows affected (0.02 sec)
� Estudiantexcurso
mysql> delimiter $
mysql> create procedure insertarestudiantexcurso (in codcur int (11), in docest
int(11), in fecha datetime (6))
-> begin
-> insert into estudiantexcurso (cod_cur_estcur, doc_est_estcur,
fec_ini_estcur) values (codcur, docest, fecha);
-> end $
Query OK, 0 rows affected (0.05 sec)
end;
/
is
begin
insert into cliente (id_art, tit_art, aut_art, edi_art, pre_art)
values (IdeArticulo, TitArticulo, AutArticulo, EdiArticulo, PrecArticulo);
end;
/
is
begin
insert into pedido (id_ped, id_cliped, fec_ped, val_ped)
values (IdePedido, IdeCliPedido, FechaPedido, ValPedido);
end;
/
� Compa��a
mysql> delimiter $
mysql> create procedure insertarcompa�ia (in nit int(15), in nombre varchar (150),
in a�ofundacion datetime (6), in representante varchar (45))
-> begin
-> insert into compa�iacompa�ia (comnit, comnombre, coma�ofun, comrelplegal)
-> values (nit, nombre, a�ofundacion, representante);
-> end $
Query OK, 0 rows affected (0.03 sec)
� TiposAutomotores
mysql> delimiter $
mysql> create procedure insertartiposautomotores (in tipo int(10), in apellido
varchar (150))
-> begin
-> insert into tiposautomotores (auttipo, autnombre) values (tipo, apellido);
-> end $
Query OK, 0 rows affected (0.01 sec)
� Automotores
mysql> delimiter $
mysql> create procedure insertarautomotores (in placa varchar(6), in marca varchar
(150), in tipo varchar (100), in modelo varchar (100), in NoPasajeros int (3), in
cilindraje int(6), in chasis varchar(100))
-> begin
-> insert into tiposautomotores (autoplaca, automarca, autotipo, automodelo,
autonumpasajeros, autocilindraje, autonumchasis) values (placa, marca, tipo,
modelo, NoPasajeros, cilindraje, chasis );
-> end $
Query OK, 0 rows affected (0.03 sec)
� Aseguramientos
mysql> delimiter $
mysql> create procedure insertaraseguramientos (in codigo int(11), in fechainicio
datetime (6), in fechafin datetime (6), in valorasegurado int (30), in estadoseguro
varchar (45), in costo int(6), in placa varchar(6))
-> begin
-> insert into tiposautomotores (asecodigo, asefechainicio, asefechaexpiracion,
asevalorasegurado, aseestado, asecosto, aseplaca) values (codigo, fechainicio,
fechafin, valorasegurado, estadoseguro, costo, placa );
-> end $
Query OK, 0 rows affected (0.01 sec)
� Incidentes
mysql> delimiter $
mysql> create procedure insertarincidentes (in codigo int(11), in fecha date,
inplaca varchar(6), in lugar varchar(40), in cantheridos int(11), in canfatalidades
int(11), in canautosinvolucrados int(11))
-> begin
-> insert into incidentes (Incicodigo, Incifecha, Inciplaca, Incilugar,
Incicantheridos, Incicanfatalidades, Incicanautosinvolucrados) values (codigo,
fecha, placa, lugar, cantheridos, canfatalidades, canautosinvolucrados);
-> end $
Query OK, 0 rows affected (0.04 sec)
� Muestre todos los campos de la tabla curso en orden ascendente seg�n 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 p�liza como son fecha de inicio, valor, estado y valor
asegurado.
mysql> create procedure incidentes()
-> select * from incidentes, aseguramientos
-> where incicantheridos = 1;
Query OK, 0 rows affected (0.05 sec)
� Visualizar los incidentes del veh�culo con placas " FLL420", este
reporte debe visualizar 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.
� Visualizar el nombre del cliente, la fecha y el valor del pedido m�s costoso.
� Visualizar los datos de la p�liza cuyo valor asegurado es el m�s costoso, este
reporte adem�s de visualizar todos los datos de la p�liza,
debe presentar todos los datos del veh�culo que tiene dicha p�liza.
� Actualizaci�n
� Borrado
� Actualizaci�n
� Borrado
� Actualizaci�n
� Borrado
� Borrado
� Actualizaci�n
� Borrado
� Actualizaci�n
� Borrado
� Tabla Automotores
Actualizaci�n:
Borrado:
Tabla Aseguramientos:
Actualizacion:
Borrado:
Tabla Incidentes:
Actualizacion:
CREATE TRIGGER `incidentesupdate` BEFORE UPDATE ON `incidentes` FOR EACH ROW INSERT
INTO trigger_incidentes
(CodigoAnterior, FechaAnterior, PlacaAnterior,
LugarAnterior,CantidadHeridosAnterior, CantidadFatalidadesAnterior,
CantidadAutosInvolucradosAnterior, CodigoNuevo, FechaNuevo, PlacaNuevo, LugarNuevo,
CantidadHeridosNuevo,CantidadFatalidadesNuevo, CantidadAutosInvolucradosNuevo)
VALUES (OLD.incicodigo, OLD.incifecha, OLD.inciplaca, OLD.incilugar,
OLD.incicantheridos, OLD.incicanfatalidades,OLD.incicanautosinvolucrados,
NEW.incicodigo, NEW.incifecha, NEW.inciplaca, NEW.incilugar, NEW.incicantheridos,
NEW.incicanfatalidades, NEW.incicanautosinvolucrados)
Borrado:
CREATE TRIGGER `incidentesdelete` AFTER DELETE ON `incidentes` FOR EACH ROW INSERT
INTO trigger_incidentes
(CodigoAnterior, FechaAnterior, PlacaAnterior,
LugarAnterior,CantidadHeridosAnterior, CantidadFatalidadesAnterior,
CantidadAutosInvolucradosAnterior, CodigoNuevo, FechaNuevo, PlacaNuevo, LugarNuevo,
CantidadHeridosNuevo,CantidadFatalidadesNuevo, CantidadAutosInvolucradosNuevo)
VALUES (OLD.incicodigo, OLD.incifecha, OLD.inciplaca, OLD.incilugar,
OLD.incicantheridos, OLD.incicanfatalidades,OLD.incicanautosinvolucrados)