Profesor.
CREATE PROCEDURE insertarProfesor (doc_prof varchar(11), nom_prof
varchar (30), ape_prof varchar(30), cate_prof int(11), sal_prof int(11))
INSERT INTO profesor (doc_prof, nom_prof, ape_prof, cate_prof, sal_prof)
VALUES (doc_prof, nom_prof, ape_prof, cate_prof, sal_prof);
Ejemplo:
call insertarProfesor ('1123456','Pedro', 'Valderrama',5,2300000);
Curso.
CREATE PROCEDURE insertarCurso (cod_curs int(11), nom_curs varchar(100),
horas_curs int (11), valor_curs int(11))
INSERT INTO curso (cod_curs, nom_curs, horas_curs, valor_curs) VALUES
(cod_curs, nom_curs, horas_curs, valor_curs);
Ejemplo:
call insertarCurso(1234,'Ingles',24,500000);
Estudiante:
CREATE PROCEDURE insertarEstudiante(doc varchar(11), nom varchar(30), ape
varchar (30), edad int(11))
INSERT INTO estudiante (doc_est, nom_est, ape_est, edad_est) VALUES (doc,
nom, ape, edad);
Ejemplo:
CALL insertarEstudiante ('4321','Jair','Mancilla',33);
Estudiantexcurso:
CREATE PROCEDURE insertarEstudiantexcurso (cod_cur int(11), doc_est
varchar(30), fec_ini date)
INSERT INTO estudiantexcurso (cod_cur_estcur, doc_est_estcur, fec_ini_estcur)
VALUES (cod_cur, doc_est, fec_ini);
Ejemplo:
CALL insertarEstudiantexcurso (345671,'1098765678','2012-03-05');
En ORACLE; para las tablas Cliente, Articulo, Pedido.
Cliente.
BEGIN
INSERTARCLIENTE('12313','YERLI','CASTRILLON','CALLE X','BOGOTA','AGOSTO');
END;
Articulo.
create or replace procedure "INSERTARARTICULO"
(tit_art IN VARCHAR2,
aut_art IN VARCHAR2,
edi_art IN VARCHAR2,
prec_art IN NUMBER)
is
begin
INSERT INTO ARTICULO (TIT_ART, AUT_ART, EDI_ART, PREC_ART) VALUES (TIT_
ART, AUT_ART, EDI_ART, PREC_ART);
end;
Ejemplo:
BEGIN
INSERTARARTICULO('LAVORAGINE','VASQUEZ','CARVAJAL',28000);
END;
Pedido.
Ejemplo:
BEGIN
INSERTARPEDIDO('12313','12-12-2012',250000);
END;
Compañía.
CREATE PROCEDURE insertarCompania(nit varchar(11), nombre varchar(30),
anofundado, replegal varchar(100))
INSERT INTO compania (comnit, comnombre, comanofun, comreplegal) VALUES (nit,
nombre, anofundado, replegal);
Ejemplo.
CALL insertarCompania('12344567', 'center', 2000, 'HECTOR');
Tipos de automotor
CREATE PROCEDURE insertarTipoAutomotor (tipo int(11), nombre varchar(30))
INSERT INTO tipoautomotor (auttipo, nom_tipoauto) VALUES (tipo, nombre);
Ejemplo.
CALL PROCEDURE insertarTipoAutomotor (3,'MOTOCICLETA');
Automotor
CREATE PROCEDURE insertarAutomotor (placa varchar(6), marca varchar(30),
tipo int(30), modelo int(30), numpasajeros int(11), cilindraje int(11), chasis
varchar(20))
INSERT INTO automotor(autoplaca, automarca, autotipo, automodelo,
autonumpasajeros, autocilindraje, autonumchasis) VALUES (placa, marca, tipo, modelo,
numpasajeros, cilindraje, chasis);
Ejemplo.
CALL PROCEDURE
insertarAutomotor('QNK13A','AKT',1,2013,2,125,'ADFQWEFADFA');
Aseguramiento
CREATE PROCEDURE insertarSeguro(asefechainicio date, asefechaexpiracion
date, asevalorasegurado int(11), aseestado varchar(15), asecosto int(11),
aseplaca varchar(6))
INSERT INTO aseguramiento(asefechainicio, asefechaexpiracion, asevalorasegurado,
aseestado, asecosto, aseplaca) VALUES(asefechainicio, asefechaexpiracion,
asevalorasegurado, aseestado, asecosto, aseplaca);
Ejemplo.
CALL insertarSeguro ('2012-02-15', '2013-02-16', 2800000, 'ACTIVO', 120000, 'FLL420');
Incidentes.
CREATE PROCEDURE insertarIncidente(fecha date, placa varchar(6), lugar
varchar(40), numheridos int(11), fatalidades int(11), autosinvolucrados int(11))
INSERT INTO incidentes(incifecha, inciplaca, incilugar, incicantheridos,
incicanfatalidades, incicanautosinvolucrados) VALUES (fecha, placa, lugar, numheridos,
fatalidades, autosinvolucrados);
Ejemplo.
CALL insertarIncidente('2012-12-21', 'FLL420', 'Danubio',0,0,2);
EJEMPLO:
BEGIN
MUESTRASALARIO;
END;
EJEMPLO:
BEGIN
MAYORVALOR;
END;
EJEMPLO:
BEGIN
PEDIDOSXFECHA;
END;
• Listar todos los pedidos realizados incluyendo el nombre del artículo.
create or replace procedure "LISTARPEDIDOS" IS
CURSOR CURS IS
SELECT pedido.*, articulo.tit_art
FROM articulo INNER JOIN (pedido INNER JOIN articuloxpedido ON pedido.id_ped = ar
ticuloxpedido.id_ped_artped) ON articulo.id_art = articuloxpedido.id_art_artped;
begin
DBMS_OUTPUT.PUT_LINE(' NOMBRE DEL PEDIDO ||'|| ' ' || ' ID DEL CLIENTE
||' || ' FECHA DEL PEDIDO ||' || ' VALOR DEL PEDIDO ||' );
FOR RESULTADOS IN CURS LOOP
DBMS_OUTPUT.PUT_LINE(RESULTADOS.TIT_ART || ' ||
' ||RESULTADOS.ID_CLI_PED || ' || ' ||RESULTADOS.FEC_PED || ' ||
' ||RESULTADOS.VAL_PED);
END LOOP;
end;
EJEMPLO:
BEGIN
LISTARPEDIDOS;
END;
begin
DBMS_OUTPUT.PUT_LINE(' FECHA EXPIRACION ||' ||' PLACA DEL AUTOMOTOR
' || ' MARCA ||' || ' VALOR ASAGURADO ');
FOR RESULTADOS IN CURS LOOP
DBMS_OUTPUT.PUT_LINE(RESULTADOS.ASEFECHAEXPIRACION || ' ||
' ||RESULTADOS.AUTOPLACA || ' || '||RESULTADOS.AUTOMARCA || '
||' ||RESULTADOS.ASEVALORASEGURADO );
END LOOP;
end;
EJEMPLO:
BEGIN
EXPIRAPOLIZA;
END;
Ejemplo.
CALL mostrarCursoSegunValorAsc;
Ejemplo.
CALL mostrarAnoFundadaEmpresa;
Ejemplo.
CALL mostrarClientexApellidoAsc;
• 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.
CREATE PROCEDURE mostrarIncidente()
SELECT incidentes.incicantheridos, incidentes.incilugar, incidentes.inciplaca,
aseguramiento.asefechainicio, aseguramiento.asecosto, aseguramiento.aseestado,
aseguramiento.asevalorasegurado
FROM aseguramiento INNER JOIN incidentes ON aseguramiento.aseplaca =
incidentes.inciplaca
WHERE incidentes.incicantheridos=1;
Ejemplo.
CALL mostrarIncidente;
• 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.
CALL mostrarIncidentePlaca;
Ejemplo
SELECT mostrarMayores();
DELIMITER //
CREATE FUNCTION valorPromedio()
RETURNS int(11)
BEGIN
DECLARE valor int(11);
SELECT AVG(valor_curs) AS ' Promedio del valor del curso' into valor FROM curso
WHERE horas_curs > 40;
RETURN valor;
END; //
DELIMITER ;
Ejemplo:
SELECT valorPromedio();
DELIMITER //
CREATE FUNCTION sueldoPromedioProfesorCat1()
RETURNS int(11)
BEGIN
DECLARE sueldo int(11);
SELECT AVG(sal_prof) into sueldo FROM profesor WHERE cate_prof = 1;
RETURN sueldo;
end; //
DELIMITER ;
Ejemplo;
SELECT sueldoPromedioProfesorCat1();
EJEMPLO:
SELECT VERCLIENTEPEDIDOMASCOSTOSO FROM DUAL;
Ejemplo:
SELECT COUNT(articulo.edi_art)
FROM articulo WHERE EDI_ART = 'Alfaomega - Rama';
return varchar2
as
datos varchar(400);
begin
Ejemplo:
select POLIZAMASCOSTOSA from dual;
return varchar2
as
datos varchar(400);
begin
SELECT aseestado ||' || ' ||asevalorasegurado||' || ' || incicanautosinvolucrados INTO
DATOS
FROM aseguramiento INNER JOIN incidentes ON aseguramiento.aseplaca =
incidentes.inciplaca
where incicanautosinvolucrados = (select min(incicanautosinvolucrados) from incidentes);
RETURN datos;
end;
Ejemplo:
SELECT INCIDENTESMENORNUMAUTOS FROM DUAL;
return varchar2
as
datos varchar(400);
begin
Ejemplo:
SELECT POLIZAMASCOSTOSA FROM DUAL;
6. Construya los siguiente disparadores para controlar la actualización y
borrado de registros
Profesor:
5. EVIDENCIAS
Documento en formato txt con el nombre Solucion_Laboratorio_SQL que
contenga el código SQL para la construcción y manipulación de las Bases
de Datos solicitadas en el presente laboratorio y que permita obtener los
resultados solicitados.