Trabajo ayudantía
-
Upload
alejandro-campos -
Category
Documents
-
view
602 -
download
2
Transcript of Trabajo ayudantía
TAREA AYUDANTÍA
PLSQL
Profesor: Cristian Salazar
Ayudante: José Luis Carrasco
Alumno: Alejandro Ramírez
Universidad Austral de Chile Facultad de Ciencias Económicas y Administrativas
Escuela de Ingeniería Comercial Sistemas de información empresarial
VALDIVIA, ABRIL 2012
ACTIVIDADES
Supuestos: La base de datos no guarda el histórico de los préstamos realizados, es decir, que al
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 del
estudiante, NOMBRE de la carrera y NOMBRE del campus).
b) Que entregue los estudiantes que son de Auditoria (NOMBRES y APELLIDOS del
estudiante, NOMBRE de la carrera y NOMBRE del campus).
c) Que entregue los estudiantes que se atrasaron en la entrega de los libros(RUT, NOMBRES,
APELLIDOS y FONO).
d) La cantidad de libros prestados.
e) Los libros de editoriales extranjeras (CODIGO, TITULO, AÑO y PAIS de ORIGEN).
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).
2.- Se requiere obtener datos desde la Base de Datos y almacenarlos de forma permanente
(Vista). Se solicita:
Los estudiantes del campus Isla Teja, que tienen libros en su poder (atrasados o no).
Se debe entregar el RUT, NOMBRE y APELLIDOS del estudiante, además del NOMBRE de la
carrera a la cual pertenece.
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.
Se debe indicar que funcionario realizo la transacción, con RUT, NOMBRE y APELLIDO.
Además deberá indicarse la FECHA de PRESTAMO y la FECHA de ENTREGA de éste.
NOTA: deberá añadir ALIAS al NOMBRE del estudiante, del funcionario, del autor y de la
carrera para diferenciarlos.
3.- Se solicita obtener lo siguiente (consultas):
a) El número de Estudiantes por Carrera.
b) El número de Estudiantes por Campus
c) El número de Estudiantes por Ciudad
d) El numero de Préstamos atrasados
e) El número de Prestamos Activos, No atrasados.
SOLUCIONES
1)
a) Que entregue los estudiantes que son de Ing. Comercial (NOMBRES y APELLIDOS del
estudiante, NOMBRE de la carrera y NOMBRE del campus).
Consulta SQL:
Solución (113 resultados):
select e.nombres NOMBRES_ESTUDIANTES , e.apellidos
APELLIDOS_ESTUDIANTES , c.nombre NOMBRES_CARRERA, cm.nombre
NOMBRES_CAMPUS
from estudiantes e, carreras c, campus cm
where c.nombre = 'ING. COMERCIAL'
and c.id_campus = cm.id_campus
and e.id_carrera = c.id_carrera;
b) Que entregue los estudiantes que son de Auditoria (NOMBRES y APELLIDOS del
estudiante, NOMBRE de la carrera y NOMBRE del campus).
Consulta SQL:
Solución (81 resultados):
select e.nombres NOMBRES_ESTUDIANTES , e.apellidos
APELLIDOS_ESTUDIANTES , c.nombre NOMBRE_CARRERA, cm.nombre
NOMBRE_CAMPUS
from estudiantes e, carreras c, campus cm
where c.nombre = 'AUDITORIA'
and c.id_campus = cm.id_campus
and e.id_carrera = c.id_carrera;
c) Que entregue los estudiantes que se atrasaron en la entrega de los libros(RUT, NOMBRES,
APELLIDOS y FONO).
Consulta SQL:
Solución (291 resultados):
select E.RUT_EST, e.nombres , e.apellidos , E.FONO
from estudiantes e, prestamo p
where e.rut_est = p.rut_est
and p.fecha_e < sysdate;
d) La cantidad de libros prestados.
Consulta SQL:
Solución (291 resultados):
select count(p.cod_libro) CANT_LIBROS_PRESTADOS
from Prestamo p;
e) Los libros de editoriales extranjeras (CODIGO, TITULO, AÑO y PAIS de ORIGEN).
Consulta SQL:
Solución (1094 resultados):
select l.cod_libro, l.titulo TITULO_LIBRO, l.agno AÑO, e.pais
from libros l, editoriales e
where e.pais <> 'CHILE'
and l.id_edit = e.id_edit
order by l.cod_libro asc;
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).
Consulta SQL:
Solución (275 resultados):
select l.cod_libro, l.titulo, l.agno AÑO, b.biblioteca, a.nombres
NOMBRES_AUTOR, a.apellidos APELLIDOS_AUTOR, e.nombre
NOMBRE_EDITORIAL, e.pais
from libros l, biblioteca b, autores a, editoriales e, tipo p
where p.tipo_p = 'RESERVA'
and a.rut_autor=l.rut_autor
and e.id_edit=l.id_edit
and b.id_biblio=l.id_biblio
and p.id_tipo=l.id_tipo;
2) Se requiere obtener datos desde la Base de Datos y almacenarlos de forma permanente
(Vista). Se solicita:
Los estudiantes del campus Isla Teja, que tienen libros en su poder (atrasados o no).
Se debe entregar el RUT, NOMBRE y APELLIDOS del estudiante, además del NOMBRE de la
carrera a la cual pertenece.
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.
Se debe indicar que funcionario realizo la transacción, con RUT, NOMBRE y APELLIDO.
Además deberá indicarse la FECHA de PRESTAMO y la FECHA de ENTREGA de éste.
NOTA: deberá añadir ALIAS al NOMBRE del estudiante, del funcionario, del autor y de la
carrera para diferenciarlos.
Consulta SQL:
select e.rut_est, e.nombres NOMBRES_EST, e.apellidos APELLIDOS_EST,
c.nombre NOMBRE_CARRERA, cm.nombre NOMBRE_CAMPUS,
p.fecha_p, p.fecha_e, l.cod_libro, l.titulo, l.agno, a.nombres
NOMBRES_AUTOR, a.apellidos APELLIDOS_AUTOR, ed.nombre
NOMBRE_EDIT, ed.pais, b.biblioteca, t.tipo_p, f.rut_func, f.nombres
NOMBRES_FUNC, f.apellidos APELLIDOS_FUNC
from estudiantes e, carreras c, campus cm, prestamo p, libros l, autores
a, editoriales ed, biblioteca b, tipo t, funcionarios f
where cm.nombre = 'ISLA TEJA'
and e.id_carrera=c.id_carrera
and c.id_campus=cm.id_campus
and e.rut_est=p.rut_est
and p.cod_libro=l.cod_libro
and l.rut_autor=a.rut_autor
and l.id_edit=ed.id_edit
and l.id_biblio=b.id_biblio
and l.id_tipo=t.id_tipo
and f.rut_func=p.rut_func
and p.fecha_p > '13/04/2012'
order by p.fecha_p asc;
3)
a) El número de Estudiantes por Carrera.
Consulta SQL:
Solución (45 resultados):
select c.nombre NOMBRE_CARRERA, count(e.id_carrera)
CANT_EST_POR_CARRERA
from carreras c, estudiantes e
where c.id_carrera=e.id_carrera
group by c.nombre;
b) El número de Estudiantes por Campus
Consulta SQL:
Solución:
c) El número de Estudiantes por Ciudad
Consulta SQL:
Solución:
select cm.nombre NOMBRE_CAMPUS, count(c.id_campus)
CANT_EST_POR_CAMPUS
from carreras c, estudiantes e, campus cm
where c.id_carrera=e.id_carrera
and c.id_campus=cm.id_campus
group by cm.nombre;
select cd.nombre NOMBRE_CIUDAD, count(cm.id_ciudad)
CANT_EST_POR_CIUDAD
from carreras c, estudiantes e, campus cm, ciudad cd
where c.id_carrera=e.id_carrera
and c.id_campus=cm.id_campus
and cm.id_ciudad=cd.id_ciudad
group by cd.nombre;