14
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

Trabajo ayudantía

Embed Size (px)

Citation preview

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;

Solución (180 resultados):

Continuación solución (columnas):

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;

d) El numero de Préstamos atrasados

Consulta SQL:

Solución:

e) El número de Prestamos Activos, No atrasados.

Consulta SQL:

Solución:

select count(fecha_e) CANT_LIBROS_ATRASADOS

from prestamo

where fecha_e < sysdate;

select count(fecha_e) CANT_LIBROS_ACTIVOS

from prestamo

where fecha_e > sysdate;