laboratorio nº2
TRANSCRIPT
Laboratorio N° 2 Vistas en SQL
Carolina Navarro Díaz y Patricia Vargas Muñoz
Valdivia, 22 de Noviembre de 2012
Carolina Navarro y Patricia Vargas Estudiantes de Auditoría
2
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).
Carolina Navarro y Patricia Vargas Estudiantes de Auditoría
3
b) Que entregue los estudiantes que son de Auditoria (NOMBRES y APELLIDOS del
estudiante, NOMBRE de la carrera y NOMBRE del campus).
Carolina Navarro y Patricia Vargas Estudiantes de Auditoría
4
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.
Carolina Navarro y Patricia Vargas Estudiantes de Auditoría
5
e) Los libros de editoriales extranjeras (CODIGO, TITULO, AÑO y PAIS de ORIGEN).
Carolina Navarro y Patricia Vargas Estudiantes de Auditoría
6
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).
Carolina Navarro y Patricia Vargas Estudiantes de Auditoría
7
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.
Carolina Navarro y Patricia Vargas Estudiantes de Auditoría
8
3.- Se solicita obtener lo siguiente (vistas):
a) El número de Estudiantes por Carrera.
Carolina Navarro y Patricia Vargas Estudiantes de Auditoría
9
b) El número de Estudiantes por Campus
c) El número de Estudiantes por Ciudad
d) El numero de Préstamos atrasados
Carolina Navarro y Patricia Vargas Estudiantes de Auditoría
10
e) El número de Prestamos Activos, No atrasados.
Carolina Navarro y Patricia Vargas Estudiantes de Auditoría
11
Detalle de los comandos utilizados en este laboratorio
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 vw_ESTUDIANTES_COMERCIAL AS
SELECT E.NOMBRES, E.APELLIDOS, CA.NOMBRE, CA.NOMBRE
CAMPUS CA, CARRERAS CR, ESTUDIANTES E
WHERE CA.ID_CAMPUS = CR.ID_CAMPUS
AND CR.ID_CARRERA = E.ID_CARRERA
AND CR.NOMBRE = 'ING. COMERCIAL'
Que entregue los estudiantes que son de Auditoria (NOMBRES y APELLIDOS del
estudiante, NOMBRE de la carrera y NOMBRE del campus)
CREATE OR REPLACE vw_ESTUDIANTES_AUDITORIA AS
SELECT E.NOMBRES, E.APELLIDOS, CA.NOMBRE, CA.NOMBRE
FROM CAMPUS CA, CARRERAS CR, ESTUDIANTES E
WHERE CA.ID_CAMPUS = CR.ID_CAMPUS
AND CR.ID_CARRERA = E.ID_CARRERA
AND CR.NOMBRE = 'AUDITORIA'
Carolina Navarro y Patricia Vargas Estudiantes de Auditoría
12
Que entregue los estudiantes que se atrasaron en la entrega de los libros (RUT,
NOMBRES, APELLIDOS y FONO)
CREATE OR REPLACE vw_ESTUDIANTES_ATRASADOS AS
SELECT E.NOMBRES, E.APELLIDOS, E.RUT_EST, E.FONO, PR.FECHA_E
FROM ESTUDIANTES E, PRESTAMO PR
WHERE E.RUT_EST = PR.RUT_EST
AND FECHA_E < trunc(SYSDATE)
La cantidad de libros prestados.
CREATE OR REPLACE VIEW vw_clibros_prestados AS (crea la vista)
SELECT COUNT(cod_libro) AS prestamos_libro FROM préstamo
(Cuenta todos los libros en la tabla Préstamo y lo agrupa en la variable prestamo_libros)
Los libros de editoriales extranjeras (CODIGO, TITULO, AÑO y PAIS de ORIGEN).
CREATE OR REPLACE VIEW vw_libros_edit_extranjeras AS (crea la vista)
SELECT libros.Cod_libro, libros.Titulo, libros.agno, editoriales.Pais
FROM libros
INNER JOIN editoriales
ON libros.id_edit=editoriales.id_edit
WHERE editoriales.pais <> 'CHILE';
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 vw_libros_reserva AS (crea la vista)
SELECT libros.Cod_libro, libros.Titulo, libros.agno, biblioteca.biblioteca, autores.nombres,
autores.apellidos, editoriales.nombre, editoriales.pais
FROM libros
Carolina Navarro y Patricia Vargas Estudiantes de Auditoría
13
INNER JOIN autores ON libros.rut_autor = autores.rut_autor
INNER JOIN biblioteca ON libros.id_biblio = biblioteca.id_biblio
INNER JOIN editoriales ON libros.id_edit = editoriales.id_edit
INNER JOIN tipo ON libros.id_tipo = tipo.id_tipo WHERE tipo.tipo_p = 'RESERVA';
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.
CREATE OR REPLACE VIEW vw_alumno_teja_prestamo AS (Crea la vista)
SELECT estudiantes.rut_est, estudiantes.nombres, estudiantes.apellidos,
prestamo.cod_libro, carreras.nombre, libros.Cod_libro, libros.Titulo, libros.agno,
autores.nombres, autores.apellidos, editoriales.nombre, editoriales.pais,
biblioteca.biblioteca, funcionarios.rut_func, funcionarios.nombres, funcionarios.apellidos,
prestamo.fecha_p, prestamo.fecha_e
FROM estudiantes
INNER JOIN prestamo ON estudiantes.rut_est = prestamo.rut_est
INNER JOIN libros ON prestamo.cod_libro = libros.cod_libro
INNER JOIN editoriales ON libros.id_edit = editoriales.id_edit
Carolina Navarro y Patricia Vargas Estudiantes de Auditoría
14
INNER JOIN autores ON libros.rut_autor = autores.rut_autor
INNER JOIN biblioteca ON libros.id_biblio = biblioteca.id_biblio
INNER JOIN funcionarios ON prestamo.rut_func = funcionarios.rut_func
INNER JOIN carreras ON estudiantes.id_carrera = carreras.id_carrera
INNER JOIN campus ON carreras.id_campus = campus.id_campus where campus.nombre
= 'ISLA TEJA'
Se solicita obtener lo siguiente (vistas):
N° de Estudiantes por Carrera.
CREATE OR REPLACE VIEW vw_cant_estudiantes_x_Carrera AS (Crea la vista)
SELECT carreras.nombre, carrera.cantidad_alumnos
FROM carreras
INNER JOIN (SELECT id_carrera, count(*) cantidad_alumnos FROM estudiantes group by
id_carrera) carrera ON carreras.id_carrera = carrera.id_carrera
N° de Estudiantes por Campus
CREATE OR REPLACE VIEW vw_cant_estudiantes_x_campus AS (Crea la vista)
Select count (*)
From estudiantes e,carreras c
Where e.id_campus=c.id_campus
N° de Estudiantes por Ciudad
CREATE OR REPLACE VIEW vw_cant_estudiantes_x_ciudad AS
Select count (*)
From estudiantes e
Carolina Navarro y Patricia Vargas Estudiantes de Auditoría
15
Where e.id_ciudad=c.id_ciudad
N° de Préstamos atrasados
CREATE OR REPLACE VIEW vw_prestamos_atrasados AS (Crea la vista)
SELECT COUNT(cod_libro) AS atrasados from prestamo where fecha_e < SYSDATE
N° de Prestamos Activos, No atrasados.
CREATE OR REPLACE VIEW vw_prestamos_no_atrasados AS (Crea la vista)
SELECT COUNT(cod_libro) AS no_atrasados from prestamo where fecha_e >= SYSDATE