laboratorio de PLSQL-ORACLE

Post on 06-Sep-2014

157 views 1 download

Tags:

Transcript of laboratorio de PLSQL-ORACLE

UNIVERSIDAD AUSTRAL DE CHILE

FACULTAD DE CIENCIAS ECONÓMICAS Y ADMINISTRATIVAS

INSTITUTO DE ADMINISTRACIÓN

Sistemas de Información Empresarial

Sistemas de Información Empresarial

Nombre:

Valeria Muñoz Ortiz

30 de abril de 2012, Valdivia

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).

Total de datos de la consulta 113

select e.nombres NOMBRES, e.apellidos APELLIDOS, car.nombre CARRERA, cam.nombre CAMPUSfrom estudiantes e, carreras car, campus camwhere car.nombre = 'ING. COMERCIAL'and car.id_CAMPUS=cam.id_campusand e.id_carrera=car.id_carrera;

b) Que entregue los estudiantes que son de Auditoria (NOMBRES y APELLIDOS del estudiante, NOMBRE de la carrera y NOMBRE del campus).

Total de datos de la consulta 81

select e.nombres NOMBRE, e.apellidos APELLIDO, car.nombre CARRERA, cam.nombre CAMPUSfrom estudiantes e, carreras car, campus camwhere car.nombre = 'AUDITORIA'and car.id_CAMPUS=cam.id_campusand e.id_carrera=car.id_carrera;

c) Que entregue los estudiantes que se atrasaron en la entrega de los libros(RUT, NOMBRES, APELLIDOS y FONO).

Total de datos de la consulta 291

select e.nombres, e.apellidos, e.rut_est, e.fono, p.fecha_p, p.fecha_efrom estudiantes e, prestamo pwhere e.rut_est=p.rut_estand p.fecha_e<sysdate

d) La cantidad de libros prestados.

Total de datos de la consulta 291

SELECT count (*) from prestamo;

e) Los libros de editoriales extranjeras (CODIGO,TITULO , AÑO y PAIS de ORIGEN).

Total de datos de la consulta 1094

select ed.pais, l.titulo, l.agno, l.cod_librofrom editoriales ed, libros lwhere l.id_edit=ed.id_editand ed.pais <> 'CHILE'

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 ).

Total de datos de la consulta 275

Select L.COD_LIBRO, L.TITULO, L.AGNO AS AÑO, B.BIBLIOTECA, A.NOMBRES, A.APELLIDOS, ED.NOMBRE, ED.PAIS, t.tipo_pFROM LIBROS L, BIBLIOTECA B, AUTORES A, EDITORIALES ED, TIPO TWHERE ED.ID_EDIT = L.ID_EDITAND A.RUT_AUTOR = L. RUT_AUTORAND t.id_tipo=l.id_tipoAND B.ID_BIBLIO = L.ID_BIBLIOAND T.TIPO_P = 'RESERVA';

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.

Supuesto: préstamos después de 10 de abril no se han entregado.

SELECT E.RUT_EST, E.NOMBRES, E.APELLIDOS, C.NOMBRE AS CARRERA, CS.NOMBREAS CAMPUS, P.FECHA_P, P.FECHA_E, L.COD_LIBRO, A.NOMBRES AS N_AUTOR,A.APELLIDOS AS AP_AUTOR, ED.NOMBRE AS EDITORIAL, ED.PAIS, B.BIBLIOTECA,T.TIPO_P AS TIPO, F.RUT_FUNC, F.NOMBRES AS NOMBRES_FUNC, F.APELLIDOS ASAPELLIDOS_FUNCFROM ESTUDIANTES E, PRESTAMO P, LIBROS L, CARRERAS C, CAMPUS CS, AUTORESA, EDITORIALES ED, BIBLIOTECA B, TIPO T, FUNCIONARIOS FWHERE E.RUT_EST=P.RUT_ESTAND L.COD_LIBRO=P.COD_LIBROAND C.ID_CARRERA=E.ID_CARRERAAND CS.ID_CAMPUS=C.ID_CAMPUSAND A.RUT_AUTOR=L.RUT_AUTORAND ED.ID_EDIT=L.ID_EDITAND B.ID_BIBLIO=L.ID_BIBLIOAND T.ID_TIPO=L.ID_TIPOAND F.RUT_FUNC=P.RUT_FUNCAND P.FECHA_P > '10/04/2012'AND CS.NOMBRE='ISLA TEJA'

Se divide en 3 porque no alcanza a verse todos los campos con el pantallazo

3.- Se solicita obtener lo siguiente (consultas): a) El número de Estudiantes por Carrera.

Total de carreras 45

SELECT C.NOMBRE, COUNT(E.RUT_EST)AS "NUMERO DE ESTUDIANTES"FROM ESTUDIANTES E, CARRERAS CWHERE C.ID_CARRERA = E.ID_CARRERAGROUP BY C.NOMBRE

b) El número de Estudiantes por Campus

Número de estudiantes de puerto Montt 567 Número de estudiantes de isla teja 2033 Número de estudiantes de Miraflores 606

SELECT COUNT(E.RUT_EST) AS "NUMERO DE ESTUDIANTES", CS.NOMBRE AS "NOMBRE CAMPUS"FROM ESTUDIANTES E, CARRERAS C, CAMPUS CS WHERE C.ID_CARRERA = E.ID_CARRERAAND CS.ID_CAMPUS = C.ID_CAMPUSGROUP BY CS.NOMBRE

c) El número de Estudiantes por Ciudad

Número de estudiantes de Puerto Montt 567 Número de estudiantes de Valdivia 2639

SELECT COUNT(E.RUT_EST)AS "NUMERO DE ESTUDIANTES", CI.NOMBRE AS "CIUDAD"FROM ESTUDIANTES E, CARRERAS C, CAMPUS CS, CIUDAD CI WHERE C.ID_CARRERA = E.ID_CARRERAAND CS.ID_CAMPUS = C.ID_CAMPUSAND CI.ID_CIUDAD = CS.ID_CIUDADGROUP BY CI.NOMBRE;

d) El número de Préstamos atrasados

El número de Préstamos atrasados 291

SELECT COUNT(P.FECHA_E) AS "NUMERO DE PRESTAMOS ATRASADOS"FROM PRESTAMO P WHERE P.FECHA_E < SYSDATE

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

Supuesto: préstamos del 16/04/2012 están al día o activos.

Son 259

select count(*) as prestamos_activosfrom prestamo pwhere p.fecha_p>= '16/04/2012';