1. Laboratorio 2 - Ayudantía
Nombre:
Ninoska Altamirano Pichún
Catalina Cárdenas
Ayudante:
José Luis Carrasco V
Valdivia, 22 de Noviembre de 2012.-
2. Laboratorio N°2
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).
CREATE OR REPLACE VIEW ESTUDIANTES_COMERCIAL AS
select e.nombres, e.apellidos, c.nombre, ca.nombre as campus
from estudiantes e, carreras c, campus ca
where e.id_carrera=c.id_carrera
and c.id_campus=ca.id_campus
and c.nombre = 'ING. COMERCIAL'
b) Que entregue los estudiantes que son de Auditoria (NOMBRES y APELLIDOS del
estudiante, NOMBRE de la carrera y NOMBRE del campus).
CREATE OR REPLACE VIEW ESTUDIANTES_AUDITORIA AS
select e.nombres, e.apellidos, c.nombre as carreras, ca.nombre as campus
from estudiantes e, carreras c, campus ca
where e.id_carrera=c.id_carrera
and ca.id_campus=c.id_campus
and c.nombre='AUDITORIA'
c) Que entregue los estudiantes que se atrasaron en la entrega de los libros(RUT,
NOMBRES, APELLIDOS y FONO.
CREATE OR REPLACE VIEW RETRASO_LIBROS AS
select e.rut_est, e.nombres, e.apellidos, e.fono, p.fecha_e, p.fecha_p
from estudiantes e, prestamo p
where e.rut_est=p.rut_est
and p.fecha_e>trunc(sysdate)
d) La cantidad de libros prestados.
CREATE OR REPLACEVIEW LIBROS_PRESTADOS AS
select count(*) AS LIBROS
from prestamo
e) Los libros de editoriales extranjeras (CODIGO,TITULO , AÑO y PAIS de ORIGEN.
CREATE OR REPLACE VIEW LIBROS_EXTRANJEROS AS
select l.cod_libro, l.titulo, l.agno, e.pais
from libros l, editoriales e
where e.id_edit=l.id_edit
and PAIS <>'CHILE'
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.
CREATE OR REPLACE VIEW LIBROS_RESERVA AS
select l.cod_libro, l.titulo, l.agno, b.biblioteca, a.nombres, a.apellidos,
e.nombre, e.pais, t.tipo_p
from libros l, autores a, editoriales e, biblioteca b, tipo t
where a.rut_autor=l.rut_autor
3. and e.id_edit=l.id_edit
and t.id_tipo=l.id_tipo
and TIPO_P = 'RESERVA'
2.-Se requiere obtener datos desde la Base de Datos y almacenarlos de forma
permanente (Vista). Se solicita:
a) Los estudiantes del campus Isla Teja, que tienen libros en su poder (atrasados
o no).
CREATE OR REPLACE VIEW LIBROS_PRESTADOS_TEJA AS
select e.nombres as estudiante, c.nombre, p.fecha_p
from estudiantes e, campus c, prestamo p
where e.rut_est=p.rut_est
and c.nombre='ISLA TEJA'
b) Se debe entregar el RUT, NOMBRE y APELLIDOS del estudiante, además del NOMBRE
de la carrera a la cual pertenece
CREATE OR REPLACE VIEW ESTUDIANTES_CARRERA AS
select rut_est, e.nombres as estudiante, e.apellidos, c.nombre as carreras
from estudiantes e, carreras c
where e.id_carrera=c.id_carrera
c) Además se debe entregar que 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.
CREATE OR REPLACE VIEW DETALLE_LIBROS_PRESTADOS AS
select e.rut_est, e.nombres as estudiante, e.apellidos, c.nombre as carreras,
p.cod_libro,l.titulo, l.agno, a.nombres as autores, a.apellidos as
apellidos_autores, ed.nombre as editorial, ed.pais, b.biblioteca, t.tipo_p
from estudiantes e, carreras c, prestamo p, libros l, autores a, editoriales ed,
biblioteca b, tipo t
where e.id_carrera=c.id_carrera
and e.rut_est=p.rut_est
and p.cod_libro=l.cod_libro
and l.id_tipo=t.id_tipo
and l.rut_autor=a.rut_autor
and l.id_edit=ed.id_edit
and l.id_biblio=b.id_biblio
d) Se debe indicar que funcionario realizo la transacción, con RUT, NOMBRE y
APELLIDO.
CREATE OR REPLACE VIEW DETALLE_PRESTAMOS_FUNCIONARIOS AS
select e.rut_est, e.nombres as nombre_estudiante, e.apellidos as
apellidos_estudiantes, c.nombre as carreras, p.cod_libro, l.titulo, l.agno,
a.nombres as autores, a.apellidos as apellidos_autores, ed.nombre as editorial,
ed.pais, b.biblioteca, t.tipo_p, f.nombres as funcionarios, f.rut_func,
f.apellidos as apellidos_funcionarios
from estudiantes e, carreras c, prestamo p, libros l, autores a, editoriales ed,
biblioteca b, tipo t, funcionarios f
4. where e.id_carrera=c.id_carrera
and e.rut_est=p.rut_est
and p.cod_libro=l.cod_libro
and l.id_tipo=t.id_tipo
and l.rut_autor=a.rut_autor
and l.id_edit=ed.id_edit
and l.id_biblio=b.id_biblio
e) Además deberá indicarse la FECHA de PRESTAMO y la FECHA de ENTREGA de éste.
CREATE OR REPLACE VIEW DETALLE_PRESTAMO AS
select e.rut_est, e.nombres as estudiante, e.apellidos as apellidos_estudiante,
c.nombre as carreras, p.cod_libro,l.titulo, l.agno, a.nombres as autores,
a.apellidos as apellido_autores, ed.nombre as editorial, ed.pais, b.biblioteca,
t.tipo_p, f.nombres as funcionarios, f.rut_func, f.apellidos as
apellidos_funcionarios, p.fecha_p, p.fecha_e
from estudiantes e, carreras c, prestamo p, libros l, autores a, editoriales ed,
biblioteca b, tipo t, funcionarios f
where e.id_carrera=c.id_carrera
and e.rut_est=p.rut_est
and p.cod_libro=l.cod_libro
and l.id_tipo=t.id_tipo
and l.rut_autor=a.rut_autor
and l.id_edit=ed.id_edit
and l.id_biblio=b.id_biblio
3.- Se solicita obtener lo siguiente (vistas):
a) El número de Estudiantes por Carreras
CREATE OR REPLACE VIEW N_ESTUDIANTES_CARRERAS AS
select c.nombre as carrera, count(e.rut_est) as N_estudiantes
from carreras c, estudiantes e
where c.id_carrera =e.id_carrera
groupby c.nombre
b) El número de Estudiantes por Campus
CREATE OR REPLACE VIEW N_ESTUDIANTES_CAMPUS AS
selectk.nombreas campus, count(e.rut_est) as N_estudiantes
from estudiantes e, carreras c, campus k
where e.id_carrera = c.id_carrera
and c.id_campus = k.id_campus
groupby k.nombre
c) El número de Estudiantes por Ciudad
CREATE OR REPLACE VIEW N_ESTUDIANTES_CIUDAD AS
select ci.nombreas ciudad, count(e.rut_est) as N_estudiantes
from estudiantes e, carreras c, campus k, ciudad ci
where e.id_carrera = c.id_carrera
and c.id_campus = k.id_campus
and k.id_ciudad = ci.id_ciudad
5. groupby ci.nombre
d) El número de Préstamos atrasados
CREATE OR REPLACE VIEW PRESTAMOS_ATRASADOS AS
select count(*)as prestamo_atrasados
from prestamo
where fecha_e> trunc(sysdate)
e) El número de Préstamos Activos, No atrasados.
CREATE OR REPLACEVIEW PRESTAMOS AS
select count(*)as prestamo
from prestamo