1. Laboratorio Número II
(Vistas)
Integrantes:
Jorge Angulo Hernández
Paulina Muñoz Vargas
Ayudante:
José Luis Carrasco
Valdivia, 21 de Noviembre de 2012.-
2. Laboratorio II
1.- Realice las siguientes vistas:
a)
CREATE OR REPLACE VIEW ESTUDIANTES_COMERCIAL AS
SELECT e.nombres, e.apellidos, cr.nombre as carreras, ca.nombre as campus
FROM campus ca, carreras cr, estudiantes e
WHERE ca.id_campus=cr.id_campus
AND cr.id_carrera=e.id_carrera
AND cr.nombre='ING. COMERCIAL'
b)
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)
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 > sysdate
d)
CREATE OR REPLACE VIEW LIBROS_PRESTADOS AS
select count(*) AS LIBROS
from prestamo
e)
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)
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
and e.id_edit=l.id_edit
and t.id_tipo=l.id_tipo
and TIPO_P = 'RESERVA'
3. 2.-Se requiere obtener datos desde la Base de Datos y almacenarlos de forma
permanente (Vista). Se solicita:
a)
CREATE OR REPLACE VIEW LIBROS_PRESTADOS_TEJA AS
select e.nombres, 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)
CREATE OR REPLACE VIEW ESTUDIANTES_CARRERA AS
select rut_est, e.nombres, e.apellidos, c.nombre as carreras
from estudiantes e, carreras c
where e.id_carrera=c.id_carrera
c)
CREATE OR REPLACE VIEW DETALLE_LIBROS_PRESTADOS AS
select e.rut_est, e.nombres, e.apellidos, c.nombre as carreras, p.cod_libro,l.titulo,
l.agno, a.nombres as autores, a.apellidos as apellidos_autores, ed.nombre, 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)
CREATE OR REPLACE VIEW DETALLE_PRESTAMOS_FUNCIONARIOS AS
select e.rut_est, e.nombres, e.apellidos, c.nombre as carreras, p.cod_libro,l.titulo,
l.agno, a.nombres as autores, a.apellidos as apellidos_autores, ed.nombre, 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
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
4. e)
CREATE OR REPLACE VIEW DETALLE_PRESTAMO AS
select e.rut_est, e.nombres, e.apellidos, c.nombre as carreras, p.cod_libro,l.titulo,
l.agno, a.nombres as autores, a.apellidos as apellido_autores, ed.nombre, 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)
CREATE OR REPLACE VIEW ESTUDIANTES_CARRERA AS
SELECT c.nombre,count(e.nombres) as cantidad_est
FROM estudiantes e, carreras c
WHERE c.id_carrera=e.id_carrera
GROUP BY c.nombre
b)
CREATE OR REPLACE VIEW ESTUDIANTES_CAMPUS AS
SELECT c.nombre as campus, count(e.rut_est)as cantidad_estud
FROM campus c, estudiantes e, carreras ca
WHERE c.id_campus=ca.id_campus
AND ca.id_carrera=e.id_carrera
GROUP BY c.nombre
c)
CREATE OR REPLACE VIEW ESTUDIANTES_CIUDAD AS
SELECT c.nombre as ciudad, count(e.rut_est)as cantidad_estud
FROM ciudad c, estudiantes e, campus ca, carreras car
WHERE c.id_ciudad=ca.id_ciudad
AND ca.id_campus=car.id_campus
AND car.id_carrera=e.id_carrera
GROUP BY c.nombre
d)
CREATE OR REPLACE VIEW PRESTAMOS_ATRASADOS AS
SELECT count(p.fecha_e) as prest_atrasados
FROM prestamo p
WHERE p.fecha_e<trunc(sysdate)
5. e)
CREATE OR REPLACE VIEW PRESTAMOS_ACTIVOS AS
SELECT count(p.fecha_e) as prest_activos
FROM prestamo p
WHERE p.fecha_e>trunc(sysdate)