1. UNIVERSIDAD AUSTRAL DE CHILE
FACULTAD DE CIENCIAS ECONÓMICAS Y ADMINISTRATIVAS
INSTITUTO DE ADMINISTRACIÓN
ADMI 273
Laboratorio 2
ORACLE – PL/SQL
Alumnos:
Patricio Gómez
Juan Pablo Neira
Nicolas Klocker
2. Actividades
Supuestos: La base de datos no guarda el histórico de los préstamos realizados, es decir,
que al entregar un libro, ese préstamo se elimina de la tabla PRESTAMO.
1. Realice las siguientes vistas:
a) Que entregue los estudiantes que son de Ing. Comercial (NOMBRES y
APELLIDOS del estudiante, NOMBRE de la carrera y NOMBRE del campus).
La consulta realizada para obtener dicha información es la siguiente:
select e.nombres, e.apellidos, car.nombre, cam.nombre
from estudiantes e, carreras car, campus cam
where car.nombre='ING. COMERCIAL'
and cam.id_campus=car.id_campus
and car.id_carrera=e.id_carrera;
Parte de la tabla que se genera de esta consulta es la siguiente:
b) Que entregue los estudiantes que son de Auditoria (NOMBRES y APELLIDOS del
estudiante, NOMBRE de la carrera y NOMBRE del campus).
La consulta realizada para obtener dicha información es la siguiente:
select e.nombres, e.apellidos, car.nombre, cam.nombre
from estudiantes e, carreras car, campus cam
where car.nombre='AUDITORIA'
and cam.id_campus=car.id_campus
and car.id_carrera=e.id_carrera;
Parte de la tabla que se genera de esta consulta es la siguiente:
3. c) Que entregue los estudiantes que se atrasaron en la entrega de los libros (RUT,
NOMBRES, APELLIDOS, FONO).
La consulta realizada para obtener dicha información es la siguiente:
select e.nombres, e.apellidos, e.fono, e.rut_est, p.fecha_p, p.fecha_e
from estudiantes e, prestamo p
where e.rut_est=p.rut_est
and p.fecha_e<sysdate;
Parte de la tabla que se genera de esta consulta es la siguiente:
d) La cantidad de libros prestados.
La consulta realizada para obtener dicha información es la siguiente:
select count(*)
from prestamo;
La tabla que se genera de esta consulta es la siguiente:
e) Los libros de editoriales extranjeras (CODIGO, TITULO, AÑO y PAIS de origen).
La consulta realizada para obtener dicha información es la siguiente:
select l.cod_libro, l.titulo, l.agno, ed.pais
from libros l, editoriales ed
4. where ed.pais<>'CHILE'
and ed.id_edit=l.id_edit;
Parte de la tabla que se genera de esta consulta es la siguiente:
f) Los libros que son de reserva (CODIGO, TITULO y AÑO del libro, NOMBRE de
la biblioteca, el NOMBRE y APELLIDO del autor, el NOMBRE de la editorial y el
PAIS).
La consulta realizada para obtener dicha información es la siguiente:
select l.cod_libro, l.titulo, l.agno, b.biblioteca, a.nombres, a.apellidos, ed.nombre, ed.pais,
t.tipo_p
from libros l, biblioteca b, autores a, editoriales ed, tipo t
where t.tipo_p='RESERVA'
and t.id_tipo=l.id_tipo
and b.id_biblio=l.id_biblio
and ed.id_edit=l.id_edit
and a.rut_autor=l.rut_autor;
Parte de la tabla que se genera de esta consulta es la siguiente:
5. 2. Se requiere obtener datos desde la Base de Datos y almacenarlos de forma
permanente (Vista). Se solicita:
- Los estudiantes del campus Isla Teja, que tienen libros en su poder (atrasados o no).
- Se debe entregar el RUT, NOMBRES 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 APELLIDOS del autor, la EDITORIAL y su PAIS, indicar en
qué biblioteca se encuentra, y de qué tipo es.
- Se debe indicar qué funcionario realizó 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.
La consulta realizada para obtener dicha información es la siguiente:
select e.nombres AS "Nombre Estudiante",
e.apellidos AS "Apellido Estudiante",
e.rut_est, c.nombre AS "Carrera",
l.cod_libro,
l.titulo,
l.agno AS "Año",
a.nombres AS "Nombre Autor",
a.apellidos AS "Apellido Autor",
ed.nombre AS "Editorial",
ed.pais,
b.biblioteca,
t.tipo_p,
f.rut_func,
f.nombres AS "Nombre Funcionario",
f.apellidos AS "Apellido Funcionario",
p.fecha_p,
p.fecha_e
from estudiantes e, carreras c, campus cam, libros l, autores a, editoriales ed, biblioteca
b, tipo t, funcionarios f, prestamo p
where cam.nombre='ISLA TEJA'
and c.id_carrera=e.id_carrera
and cam.id_campus=c.id_campus
and l.cod_libro=p.cod_libro
and f.rut_func=p.rut_func
and e.rut_est=p.rut_est
and t.id_tipo=l.id_tipo
and a.rut_autor=l.rut_autor
and ed.id_edit=l.id_edit
6. and b.id_biblio=l.id_biblio
and p.fecha_e<=sysdate;
Parte de la tabla que se genera de esta consulta es la siguiente:
3. Se solicita obtener lo siguiente (consultas):
a) El número de estudiantes por carrera.
La consulta realizada para obtener dicha información es la siguiente:
select c.nombre, count (e.rut_est)AS "Nro Estudiantes"
from carreras c, estudiantes e
where c.id_carrera=e.id_carrera
group by c.nombre;
7. La tabla que se genera de esta consulta es la siguiente:
b) El número de estudiantes por campus.
La consulta realizada para obtener dicha información es la siguiente:
select cam.nombre, count (e.rut_est) AS "Nro Estudiantes"
from campus cam, estudiantes e, carreras c
where cam.id_campus=c.id_campus
and c.id_carrera=e.id_carrera
group by cam.nombre;
La tabla que se genera de esta consulta es la siguiente:
c) El número de estudiantes por ciudad.
La consulta realizada para obtener dicha información es la siguiente:
select ci.nombre, count (e.rut_est) AS "Nro Estudiantes"
from campus cam, estudiantes e, carreras c, ciudad ci
where cam.id_campus=c.id_campus
and c.id_carrera=e.id_carrera
and ci.id_ciudad=cam.id_ciudad
group by ci.nombre;
8. La tabla que se genera de esta consulta es la siguiente:
d) El número de préstamos atrasados.
La consulta realizada para obtener dicha información es la siguiente:
select count (p.fecha_e) AS "Nro Prestamos Atrasados"
from prestamo p
where p.fecha_e<sysdate;
La tabla que se genera de esta consulta es la siguiente:
e) El número de préstamos activos, no atrasados.
La consulta realizada para obtener dicha información es la siguiente:
select count (p.fecha_e) AS "Nro prestamos activos"
from prestamo p
where p.fecha_e>=sysdate;
La tabla que se genera de esta consulta es la siguiente: