Plsql

659 views

Published on

Tarea de PLSQL de ayudantía

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
659
On SlideShare
0
From Embeds
0
Number of Embeds
306
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Plsql

  1. 1. PLSQL Integrantes: Febe Moena Elizabeth Morales Andrea Uribe Profesor: Cristian Salazar Ayudante: José Luis Carrasco Curso: ADMI 273Valdivia 30 de Abril, 2012
  2. 2. Supuestos: La base de datos no guarda el histórico de los préstamos realizados, es decir, queal 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 delestudiante, NOMBRE de la carrera y NOMBRE del campus).Select e.nombres, apellidos,c.nombre CARRERA, cs.nombre CAMPUSfrom estudiantes e, carreras c, campus cswhere e.id_carrera=c.id_carrera andc.id_campus=cs.id_campus andc.nombre=Comercialb) Que entregue los estudiantes que son de Auditoria (NOMBRES y APELLIDOS delestudiante, NOMBRE de la carrera y NOMBRE del campus).Select e.nombres, apellidos,c.nombre CARRERA, cs.nombre CAMPUSfrom estudiantes e, carreras c, campus cswhere e.id_carrera=c.id_carrera andc.id_campus=cs.id_campus andc.nombre=Auditoriac) 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, fonofrom estudiantes e, prestamo pwhere e.rut_est=p.rut_est andfecha_e < (select to_char(sysdate ,dd/mm/yyyy ) from dual)
  3. 3. d) La cantidad de libros prestados.Select count(cod_libro) LIBROS_PRESTADOSfrom préstamoe) Los libros de editoriales extranjeras (CODIGO,TITULO , AÑO y PAIS de ORIGEN).Select l.cod_libro, l.titulo, l.agno AÑO, e.paisfrom editoriales e, libros lwhere e.id_edit=l.id_editand e.pais<> Chilef) Los libros que son de reserva (CODIGO, TITULO y AÑO del LIBRO, NOMBRE de labiblioteca, el NOMBRE y APELLIDO del autor, el NOMBRE de la editorial y el PAIS).Select cod_libro,titulo, agno AÑO, biblioteca, a.nombres NOMBRES_AUTOR, a.apellidosAPELLIDOS_AUTOR, e.nombre NOMBRE_EDITORIAL, paisfrom libros l, biblioteca b, autores a,editoriales ewhere b.id_biblio=l.id_biblio anda.rut_autor=l.rut_autor andl.id_edit=e.id_edit andid_tipo=1
  4. 4. 2.- Se requiere obtener datos desde la Base de Datos y almacenarlos de formapermanente (Vista). Se solicita:a) Los estudiantes del campus Isla Teja, que tienen libros en su poder (atrasados o no).create or replace view dosa asSelect e.nombres, e.apellidosfrom estudiantes e, carreras c, prestamo pwhere e.id_carrera=c.id_carrera ande.rut_est=p.rut_est andid_campus= 3 andfecha_e < (select to_char(sysdate ,dd/mm/yyyy ) from dual);Select *from dosa;b) Se debe entregar el RUT, NOMBRE y APELLIDOS del estudiante, además delNOMBRE de la carrera a la cual pertenece.create or replace view dosB asSelect e.rut_est, e.nombres NOMBRES, e.apellidos APELLIDOS, c.nombre CARRERAfrom estudiantes e, carreras c, prestamo pwhere e.id_carrera=c.id_carrera ande.rut_est=p.rut_est andid_campus= 2 andfecha_e > (select to_char(sysdate ,dd/mm/yyyy ) from dual);Select *from dosB;
  5. 5. 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é bibliotecase encuentra, y de qué tipo es.create or replace view dosc asSelect l.cod_libro,l.titulo, l.agno AÑO,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 transacción, con RUT, NOMBRE yAPELLIDO.create or replace view dosd asSelect 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
  6. 6. 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) Además deberá indicarse la FECHA de PRESTAMO y la FECHA de ENTREGA deéste.create or replace view dose asSelect 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, carrerasc, 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;
  7. 7. 3.- Se solicita obtener lo siguiente (consultas):a) El numero de Estudiantes por Carrera.Select c.nombre CARRERA, count(e.rut_est) NUMERO_ESTUDIANTESfrom carreras c, estudiantes ewhere c.id_carrera=e.id_carreragroup by c.nombreb) El numero de Estudiantes por CampusSelect cs.nombre campus, count(e.rut_est) NUMERO_ESTUDIANTESfrom carreras c, estudiantes e,campus cswhere c.id_carrera=e.id_carrera and cs.id_campus=c.id_campusgroup by cs.nombrec) El numero de Estudiantes por CiudadSelect cc.nombre CIUDAD, count(e.rut_est) NUMERO_ESTUDIANTESfrom carreras c, estudiantes e, campus cs, ciudad ccwhere c.id_carrera=e.id_carrera and cs.id_campus=c.id_campus and cc.id_ciudad=cs.id_ciudadgroup by cc.nombre
  8. 8. d) El numero de Préstamos atrasadosSelect count(p.fecha_e) PRESTAMOS_ATRASADOSfrom prestamo pe) El número de Prestamos Activos, No atrasados.Select count(p.cod_libro) PRESTAMOS_ACTIVOSfrom prestamo pwhere p.fecha_e > (select to_char(sysdate, dd/mm/yyyy) from dual)

×