Está en la página 1de 8

PLSQL

Integrantes: Febe Moena Elizabeth Morales Andrea Uribe Profesor: Cristian Salazar Ayudante: Jos Luis Carrasco Curso: ADMI 273

Valdivia 30 de Abril, 2012

Supuestos: La base de datos no guarda el histrico de los prstamos realizados, es decir, que al entregar un libro, ese prstamo 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). Select e.nombres, apellidos,c.nombre CARRERA, cs.nombre CAMPUS from estudiantes e, carreras c, campus cs where e.id_carrera=c.id_carrera and c.id_campus=cs.id_campus and c.nombre='Comercial'

b) Que entregue los estudiantes que son de Auditoria (NOMBRES y APELLIDOS del estudiante, NOMBRE de la carrera y NOMBRE del campus). Select e.nombres, apellidos,c.nombre CARRERA, cs.nombre CAMPUS from estudiantes e, carreras c, campus cs where e.id_carrera=c.id_carrera and c.id_campus=cs.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). Select e.rut_est RUT, nombres, apellidos, fono from estudiantes e, prestamo p where e.rut_est=p.rut_est and fecha_e < (select to_char(sysdate ,'dd/mm/yyyy' ) from dual)

d) La cantidad de libros prestados. Select count(cod_libro) LIBROS_PRESTADOS from prstamo

e) Los libros de editoriales extranjeras (CODIGO,TITULO , AO y PAIS de ORIGEN). Select l.cod_libro, l.titulo, l.agno AO, e.pais from editoriales e, libros l where e.id_edit=l.id_edit and e.pais<> 'Chile'

f) Los libros que son de reserva (CODIGO, TITULO y AO del LIBRO, NOMBRE de la biblioteca, el NOMBRE y APELLIDO del autor, el NOMBRE de la editorial y el PAIS). Select cod_libro,titulo, agno AO, biblioteca, a.nombres NOMBRES_AUTOR, a.apellidos APELLIDOS_AUTOR, e.nombre NOMBRE_EDITORIAL, pais from libros l, biblioteca b, autores a,editoriales e where b.id_biblio=l.id_biblio and a.rut_autor=l.rut_autor and l.id_edit=e.id_edit and id_tipo=1

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 dosa as Select e.nombres, e.apellidos from estudiantes e, carreras c, prestamo p where e.id_carrera=c.id_carrera and e.rut_est=p.rut_est and id_campus= 3 and fecha_e < (select to_char(sysdate ,'dd/mm/yyyy' ) from dual);

Select * from dosa;

b) Se debe entregar el RUT, NOMBRE y APELLIDOS del estudiante, adems del NOMBRE de la carrera a la cual pertenece. create or replace view dosB as Select e.rut_est, e.nombres NOMBRES, e.apellidos APELLIDOS, c.nombre CARRERA from estudiantes e, carreras c, prestamo p where e.id_carrera=c.id_carrera and e.rut_est=p.rut_est and id_campus= 2 and fecha_e > (select to_char(sysdate ,'dd/mm/yyyy' ) from dual);

Select * from dosB;

c) Adems se debe entregar que libro tiene prestado, indicando CODIGO, TITULO y AO, 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 dosc as Select l.cod_libro,l.titulo, l.agno AO,a.nombres,a.apellidos, ed.nombre EDITORIAL, ed.pais PAIS,b.biblioteca BIBLIOTECA, tipo_p TIPO from libros l, editoriales ed, tipo t,biblioteca b, autores a,prestamo p,estudiantes e, carreras c, campus cs where p.cod_libro=l.cod_libro and l.rut_autor=a.rut_autor and ed.id_edit=l.id_edit and b.id_biblio=l.id_biblio and t.id_tipo=l.id_tipo and e.id_carrera=c.id_carrera and e.rut_est=p.rut_est and cs.id_campus=c.id_campus and cs.id_campus= 2 and fecha_e < (select to_char(sysdate ,'dd/mm/yyyy' ) from dual);

Select * from dosc;

d) Se debe indicar que funcionario realizo la transaccin, con RUT, NOMBRE y APELLIDO. create or replace view dosd as Select f.rut_func RUT_FUNCIONARIO, f.nombres NOMBRE_FUNCIONARIO, f.apellidos APELLIDO_FUNCIONARIO from libros l, editoriales ed, tipo t,biblioteca b, autores a,prestamo p,estudiantes e, carreras c, campus cs, funcionarios f where p.cod_libro=l.cod_libro and l.rut_autor=a.rut_autor and ed.id_edit=l.id_edit and b.id_biblio=l.id_biblio and t.id_tipo=l.id_tipo and e.id_carrera=c.id_carrera and e.rut_est=p.rut_est and

cs.id_campus=c.id_campus and cs.id_campus=f.id_campus and p.rut_func=f.rut_func and c.id_campus= 2 and fecha_e < (select to_char(sysdate ,'dd/mm/yyyy' ) from dual);

Select * from dosd;

e) Adems deber indicarse la FECHA de PRESTAMO y la FECHA de ENTREGA de ste. create or replace view dose as Select p.fecha_p FECHA_PRESTAMO, p.fecha_e FECHA_ENTREGA from libros l, editoriales ed, tipo t,biblioteca b, autores a,prestamo p,estudiantes e, carreras c, campus cs, funcionarios f where p.cod_libro=l.cod_libro and l.rut_autor=a.rut_autor and ed.id_edit=l.id_edit and b.id_biblio=l.id_biblio and t.id_tipo=l.id_tipo and e.id_carrera=c.id_carrera and e.rut_est=p.rut_est and cs.id_campus=c.id_campus and cs.id_campus=f.id_campus and p.rut_func=f.rut_func and c.id_campus= 2 and fecha_e < (select to_char(sysdate ,'dd/mm/yyyy' ) from dual);

Select * from dose;

3.- Se solicita obtener lo siguiente (consultas): a) El numero de Estudiantes por Carrera. Select c.nombre CARRERA, count(e.rut_est) NUMERO_ESTUDIANTES from carreras c, estudiantes e where c.id_carrera=e.id_carrera group by c.nombre

b) El numero de Estudiantes por Campus Select cs.nombre campus, count(e.rut_est) NUMERO_ESTUDIANTES from carreras c, estudiantes e,campus cs where c.id_carrera=e.id_carrera and cs.id_campus=c.id_campus group by cs.nombre

c) El numero de Estudiantes por Ciudad Select cc.nombre CIUDAD, count(e.rut_est) NUMERO_ESTUDIANTES from carreras c, estudiantes e, campus cs, ciudad cc where c.id_carrera=e.id_carrera and cs.id_campus=c.id_campus and cc.id_ciudad=cs.id_ciudad group by cc.nombre

d) El numero de Prstamos atrasados Select count(p.fecha_e) PRESTAMOS_ATRASADOS from prestamo p

e) El nmero de Prestamos Activos, No atrasados. Select count(p.cod_libro) PRESTAMOS_ACTIVOS from prestamo p where p.fecha_e > (select to_char(sysdate, 'dd/mm/yyyy') from dual)

También podría gustarte