laboratorio nº3 -vistas,funciones,dml
TRANSCRIPT
ADMI 273
Soledad Burgos
Pamela Luengo
30/05/2011
Tarea Nº3: Vistas, Funciones, DML
I. Vista Considerar los siguientes puntos para construir una vista que despliegue la siguiente
información:
Los estudiantes que tienen libros a la fecha de: 02/05/2011
Se debe entregar el RUT, NOMBRE y APELLIDOS del estudiante, además del NOMBRE
de la carrera a la cual pertenece.
Además se debe entregar qué libro tiene prestado, indicando CODIGO, TITULO y AÑO,
el NOMBRE y APELLIDO del autor, la EDITORIAL y su PAIS, indicar en qué biblioteca se
encuentra, y de qué tipo es.
Se debe indicar que funcionario realizo la transacción, con RUT, NOMBRE y APELLIDO.
Además deberá indicarse la FECHA de PRESTAMO y la FECHA de ENTREGA de éste.
NOTA: deberá añadir ALIAS al nombre del estudiante, del funcionario, del autor y de la
carrera para diferenciarlos.
create or replace view datos_estud as
select e.nombres as "nombre estudiante",
e.apellidos as "apellido estudiante",
e.rut_est as "rut estudiante",
c.nombre as "nombre carrera",
p.fecha_e as "fecha entrega",
p.fecha_p as "fecha prestamo",
l.cod_libro,
l.titulo,
l.agno as "Año",
ed.nombre as " edicion",
ed.pais,
a.nombres as "nombre autor",
a.apellidos as "apellido autor",
f.nombres as "nombre funcionario",
f.apellidos as "apellido funcionario",
f.rut_func as "rut funcionario",
b.biblioteca
from estudiantes e,
carreras c,
prestamo p,
libros l,
editoriales ed,
autores a,
funcionarios f,
biblioteca b
where e.id_carrera=c.id_carrera
and p.rut_est=e.rut_est
and l.cod_libro=p.cod_libro
and ed.id_edit=l.id_edit
and l.rut_autor=a.rut_autor
and f.rut_func=p.rut_func
and b.id_biblio=l.id_biblio
and p.fecha_e >='02/05/2011'
Datos que se van a
mostrar al ejecutar la
vista
Tablas de las que se
extraen los datos
Cruce de tablas
Condición de fecha
Como se puede ver en la imagen, un total de 15 estudiantes tenían libros prestados hasta el
02/05/2011.
II. Funciones a) Que entregue el número de estudiante de las carreras de Ing. Comercial y Auditoría.
create or replace function alumnos_aud_com return integer is
Result integer;
begin
select count(*) into Result
from estudiantes
where estudiantes.id_carrera=1
or estudiantes.id_carrera=2;
return(Result);
end alumnos_aud_com;
b) Que entregue el número de veces que se ha prestado un libro a un estudiante, entre
un rango de fechas. (Parámetros de entrada: RUT_ESTUDIANTE, CODIGO_LIBRO,
fecha1, fecha2)
create or replace function prestamos_estudiantes(rut in number, codigo in number, fecha_inicio in
date, fecha_termino in date) return integer is
Result integer ;
begin
select count(*) into result
from estudiantes e,
prestamo p
where e.rut_est=p.rut_est
and p.fecha_p=fecha_inicio
or p.fecha_p=fecha_termino
and e.rut_est=rut
and p.cod_libro=codigo;
return(Result);
end prestamos_estudiantes;
III. DML (Insert-Update-Delete) a) Que permita agregar un estudiante.
b) Que elimine el registro de un funcionario, teniendo como parámetro de
entrada su RUT.
Insert into estudiantes (rut_est, nombres, apellidos, edad, fono, id_carrera)
values (1324534564, 'paulina', 'godoy', 34, 202020, 2);
commit;
Delete from funcionarios f
Where f.rut_func= 87459535;
Commit;
c) Que permita actualizar la información de un estudiante: EDAD, FONO, DIRECCION,
conociendo su RUT.
update estudiantes e
set e.edad=25,
e.fono=252525,
e.direccion= 'calle la loca 666'
where e.rut_est=165640276;
commit;