2. 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, Datos que se van a
l.agno as "Año", mostrar al ejecutar la
ed.nombre as " edicion", vista
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, Tablas de las que se
editoriales ed, extraen los datos
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 Cruce de tablas
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' Condición de fecha
3. 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;
4. 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;
5. III. DML (Insert-Update-Delete)
a) Que permita agregar un estudiante.
Insert into estudiantes (rut_est, nombres, apellidos, edad, fono, id_carrera)
values (1324534564, 'paulina', 'godoy', 34, 202020, 2);
commit;
b) Que elimine el registro de un funcionario, teniendo como parámetro de
entrada su RUT.
Delete from funcionarios f
Where f.rut_func= 87459535;
Commit;
6. 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;