Anda di halaman 1dari 6

# 1.

Construya los siguiente procedimientos Almacenados para inserción de


registros:

# En MySQL; para las tablas Profesor, Curso, Estudiante, Estudiantexcurso.


# Resultado en MYSQL:

use laboratoriosql
Create procedure inprofesor() Select * from profesor;
call inprofesor();

Create procedure incurso() Select * from curso;


call incurso();

Create procedure inestudiante() Select * from estudiante;


call inestudiante();

Create procedure inestudiantexcurso() Select * from estudiantexcurso;


call inestudiantexcurso();

# En el Motor de su preferencia (ORACLE O MySQL), para las tablas, Compañía,


TiposAutomotores, Automotores, Aseguramientos, Incidentes.
# Resultado en MYSQL:

use laboratoriosql
Create procedure incompañia() Select * from compañia;
call incompañia();

Create procedure intiposautomotores() Select * from tiposautomotores;


call intiposautomotores();

Create procedure inautomotores() Select * from automotores;


call inautomotores();

Create procedure inaseguramientos() Select * from aseguramientos;


call inaseguramientos();

Create procedure inincidentes() Select * from incidentes;


call inincidentes();

# 3. En MySQL construya los procedimientos almacenados para realizar los siguientes


procesos:

# •Muestre todos los campos de la tabla curso en orden ascendente según el valor.
# Resultado en MYSQL:
CREATE procedure `curso_ascendente`() NOT DETERMINISTIC CONTAINS SQL SQL SECURITY
DEFINER Select * from curso ORDER BY valor_cur ASC;
call curso_ascendente();

# • Mostrar los pedidos con los respectivos artículos(código, nombre, valor y


cantidad pedida).
# Resultado en MYSQL:
Create procedure pedidosyarticulos() Select pedido.id_ped,pedido.id_cli_ped,
pedido.fec_ped, pedido.val_ped,articulo.id_art, articulo.tit_art,
articulo.prec_art,articuloxpedido.can_art_artped from pedido,
articulo,articuloxpedido;
call pedidosyarticulos();

# • Visualizar los datos de las empresas fundadas entre el año 1991 y 1998.
# Resultado en MYSQL:
CREATE procedure empresafundada() SELECT * FROM compañia WHERE comañofun>=1991 AND
comañofun<=1998;
call empresafundada();

#• Visualizar todos los clientes organizados por apellido.


# Resultado en MYSQL:
Create procedure apellidosclientes() Select * from cliente ORDER BY ape_cli;
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 póliza como
son fecha de inicio, valor, estado y valor asegurado.
# Resultado en MYSQL:
create procedure incidentexunoherido () select * from incidentes, aseguramientos
where incicantheridos -1;
call incidentexunoherido();

#• 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.
# Resultado en MYSQL:
create procedure incidentesFLL420() select incifecha, incilugar, incicantheridos,
asefechaexpiracion, asevalorasegurado from incidentes, aseguramientos WHERE
inciplaca= 'FLL420';
call incidentesFLL420();

# 4. Realice las Siguientes funciones en MySQL:

# • Cuente el número de estudiantes cuya edad sea mayor a 22.


# Resultado en MYSQL:
select count(edad_est) from estudiante where edad_est > 22;

# • Muestre el nombre y la edad del estudiante más joven.


# Resultado en MYSQL:
select min(nom_est), (edad_est) from estudiante;

# • Calcule el valor promedio de los cursos cuyas horas sean mayores a 40.
# Resultado en MYSQL:
select avg(valor_cur) from curso where horas_cur > 40;

# • Obtener el sueldo promedio de los profesores de la categoría 1.


# Resultado en MYSQL:
select avg(sal_prf) from profesor where cate_prof >1;

# • Muestre el nombre del profesor con menor sueldo.


# Resultado en MYSQL:
select (nom_prof) from profesor where sal_prf = (select min(sal_prf) from
profesor);

# 6. Construya los siguiente disparadores para controlar la actualización y borrado


de registros:

# • En MySQL; para las tablas Profesor, Curso, Estudiante.


# Resultado en MYSQL:
# creacion tabla trigger_profesores
create table trigger_profesores(
DocumentoAnterior varchar(18) not null,
NombreAnterior varchar(30),
ApellidoAnterior varchar(30),
CategoriaNuevo int,
SalarioNuevo int,
primary key(DocumentoAnterior)
);

# creacion trigger Actualizacion Profesor


CREATE TRIGGER `profesorupdate` BEFORE UPDATE ON `profesor` FOR EACH ROW INSERT
INTO trigger_profesores (DocumentoAnterior, NombreAnterior, ApellidoAnterior,
CategoriaAnterior, SalarioAnterior, DocumentoNuevo, NombreNuevo, ApellidoNuevo,
CategoriaNuevo, SalarioNuevo) VALUES (OLD.doc_prof, OLD.nom_prof,
OLD.ape_prof,OLD.cate_prof, OLD.sal_prf, NEW.doc_prof, NEW.nom_prof, NEW.ape_prof,
NEW.cate_prof, NEW.sal_prf);

# creacion trigger Borrado Profesor


CREATE TRIGGER `profesordelete` AFTER DELETE ON `profesor` FOR EACH ROW INSERT INTO
trigger_profesores (DocumentoAnterior, NombreAnterior, ApellidoAnterior,
CategoriaAnterior,SalarioAnterior, DocumentoNuevo, NombreNuevo, ApellidoNuevo,
CategoriaNuevo, SalarioNuevo) VALUES (OLD.doc_prof, OLD.nom_prof, OLD.ape_prof,
OLD.cate_prof, OLD.sal_prof);

# creacion tabla trigger_cursos

create table trigger_cursos(


CodigoAnterior varchar(18) not null,
NombreAnterior varchar(30),
HorasAnterior time,
ValorAnterior int,
CodigooNuevo int,
NombreNuevo varchar(30),
HorasNuevo time,
ValorNuevo int,
primary key(CodigoAnterior)
);

# creacion trigger Actualizacion curso


CREATE TRIGGER `cursoupdate` BEFORE UPDATE ON `curso` FOR EACH ROW INSERT INTO
trigger_cursos(CodigoAnterior, NombreAnterior, HorasAnterior, ValorAnterior,
CodigooNuevo, NombreNuevo,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);

# creacion trigger Borrado curso


CREATE TRIGGER `cursodelete` AFTER DELETE ON `curso` FOR EACH ROW INSERT INTO
trigger_cursos(CodigoAnterior, NombreAnterior, HorasAnterior, ValorAnterior,
CodigooNuevo,NombreNuevo,HorasNuevo, ValorNuevo) VALUES (OLD.cod_curs,
OLD.nom_curs, OLD.horas_cur, OLD.valor_cur);

# creacion tabla trigger_estudiantes

create table trigger_estudiante(


DocumentoAnterior Int not null,
NombreAnterior varchar(30),
ApellidoAnterior varchar(30),
EdadAnterior int,
DocumentoNuevo int,
NombreNuevo varchar(30),
ApellidoNuevo varchar(30),
EdadNuevo int,
primary key(DocumentoAnterior)
);

# creacion trigger Actualizacion estudiantes


CREATE TRIGGER `estudianteupdate` BEFORE UPDATE ON `estudiante` FOR EACH ROW INSERT
INTO trigger_estudiante (DocumentoAnterior, NombreAnterior, ApellidoAnterior,
EdadAnterior,DocumentoNuevo, NombreNuevo, ApellidoNuevo, EdadNuevo) VALUES
(OLD.doc_est, OLD.nom_est, OLD.ape_est, OLD.edad_est, NEW.doc_est, NEW.nom_est,
NEW.ape_est, NEW.edad_est);

# creacion trigger Borrado estudiantes


CREATE TRIGGER `estudiantedelete` AFTER DELETE ON `estudiante` FOR EACH ROW INSERT
INTO trigger_estudiante (DocumentoAnterior,NombreAnterior, ApellidoAnterior,
EdadAnterior, DocumentoNuevo, NombreNuevo, ApellidoNuevo, EdadNuevo) VALUES
(OLD.doc_est, OLD.nom_est, OLD.ape_est, OLD.edad_est);

# • En el Motor de su preferencia (ORACLE O MySQL), para las tablas, Automotores,


Aseguramientos, Incidentes.
# Resultado en MYSQL:

# creacion tabla trigger_Automotores

create table trigger_Automotores(


PlacaAnterior varchar(6) not null,
MarcaAnterior varchar(30),
TipoAnterior varchar(30),
ModeloAnterior varchar(30),
NumeroPasajerosAnterior int,
CilindrajeAnterior int,
NumeroChasisAnterior int,
PlacaNuevo varchar(6),
MarcaNuevo varchar(30),
TipoNuevo varchar(30),
ModeloNuevo varchar(30),
NumeroPasajerosNuevo int,
CilindrajeNuevo int,
NumeroChasisNuevo int,
primary key(PlacaAnterior)
);

# creacion trigger Actualizacion Automotores


CREATE TRIGGER `automotoresupdate` BEFORE UPDATE ON `automotores` FOR EACH ROW
INSERT INTO trigger_automotores (PlacaAnterior, MarcaAnterior, TipoAnterior,
ModeloAnterior,NumeroPasajerosAnterior, CilindrajeAnterior, NumeroChasisAnterior,
PlacaNuevo, MarcaNuevo, TipoNuevo, ModeloNuevo, NumeroPasajerosNuevo,
CilindrajeNuevo, NumeroChasisNuevo)VALUES (OLD.autoplaca, OLD.automarca,
OLD.autotipo, OLD.automodelo, OLD.autonumpasajeros, OLD.autocilindraje,
OLD.autonumchasis, NEW.autoplaca, NEW.automarca, NEW.autotipo,NEW.automodelo,
NEW.autonumpasajeros, NEW.autocilindraje, NEW.autonumchasis);

# creacion trigger Borrado Automotores


CREATE TRIGGER `automotoresdelete` AFTER DELETE ON `automotores` FOR EACH ROW
INSERT INTO trigger_automotores (PlacaAnterior, MarcaAnterior, TipoAnterior,
ModeloAnterior,NumeroPasajerosAnterior, CilindrajeAnterior, NumeroChasisAnterior,
PlacaNuevo, MarcaNuevo, TipoNuevo, ModeloNuevo, NumeroPasajerosNuevo,
CilindrajeNuevo, NumeroChasisNuevo)VALUES (OLD.autoplaca, OLD.automarca,
OLD.autotipo, OLD.automodelo, OLD.autonumpasajeros, OLD.autocilindraje,
OLD.autonumchasis);

# creacion tabla trigger_Aseguramientos

create table trigger_Aseguramientos(


CodigoAnterior int not null,
FechaInicioAnterior date,
FechaExpiracionAnterior date,
ValorAseguradoAnterior int,
EstadoAnterior varchar(30),
CostoAnterior int,
PlacaAnterior varchar(6),
CodigoNuevo int,
FechaInicioNuevo date,
FechaExpiracionNuevo date,
ValorAseguradoNuevo int,
EstadoNuevo varchar(30),
CilindrajeNuevo int,
CostoNuevo int,
PlacaNuevo varchar(6),
primary key(CodigoAnterior)
);

# creacion trigger Actualizacion Aseguramientos


CREATE TRIGGER `aseguramientosupdate` BEFORE UPDATE ON `aseguramientos` FOR EACH
ROW INSERT INTO trigger_aseguramientos(CodigoAnterior,
FechaInicioAnterior,FechaExpiracionAnterior, ValorAseguradoAnterior,
EstadoAnterior, CostoAnterior, PlacaAnterior, CodigoNuevo, FechaInicioNuevo,
FechaExpiracionNuevo, ValorAseguradoNuevo,EstadoNuevo, CostoNuevo, PlacaNuevo)
VALUES (OLD.asecodigo, OLD.asefechainicio, OLD.asefechaexpiracion,
OLD.asevalorasegurado, OLD.aseestado, OLD.asecosto, OLD.aseplaca,NEW.asecodigo,
NEW.asefechainicio, NEW.asefechaexpiracion, NEW.asevalorasegurado, NEW.aseestado,
NEW.asecosto, NEW.aseplaca);

# creacion trigger Borrado Aseguramientos


CREATE TRIGGER `aseguramientosdelete` AFTER DELETE ON `aseguramientos` FOR EACH ROW
INSERT INTO trigger_aseguramientos(CodigoAnterior,
FechaInicioAnterior,FechaExpiracionAnterior, ValorAseguradoAnterior,
EstadoAnterior, CostoAnterior, PlacaAnterior, CodigoNuevo, FechaInicioNuevo,
FechaExpiracionNuevo, ValorAseguradoNuevo,EstadoNuevo, CostoNuevo, PlacaNuevo)
VALUES (OLD.asecodigo, OLD.asefechainicio, OLD.asefechaexpiracion,
OLD.asevalorasegurado, OLD.aseestado, OLD.asecosto, OLD.aseplaca);

# creacion tabla trigger_Aseguramientos

create table trigger_incidentes(


CodigoAnterior int not null,
FechaAnterior date,
PlacaAnterior varchar(6),
LugarAnterior varchar(30),
CantidadHeridosAnterior int,
CantidadFatalidadesAnterior int,
CantidadAutosInvolucradosAnterior int,
CodigoNuevo int,
FechaNuevo date,
PlacaNuevo varchar(6),
LugarNuevo varchar(30),
CantidadHeridosNuevo int,
CantidadFatalidadesNuevo int,
CantidadAutosInvolucradosNuevo int,
primary key(CodigoAnterior)
);

# creacion trigger Actualizacion incidentes


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

# creacion trigger Borrado incidentes


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

Anda mungkin juga menyukai