Laboratorio 2 - Ayudantía


                  Nombre:
          Ninoska Altamirano Pichún
              Catalina Cárdenas

                  Ayudante:
             José Luis Carrasco V




      Valdivia, 22 de Noviembre de 2012.-
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
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
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
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

Laboratorio n 2 (1)

  • 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.- Realicelas 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 andTIPO_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 andp.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) Elnú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