SlideShare a Scribd company logo
1 of 6
Download to read offline
Universidad Austral de Chile

  Facultad de Ciencias Económicas y Administrativas

                Ingeniería Comercial




Sistema de Información Empresarial

 Guía de laboratorio N° 2
        PLSQL Developer



                     Asignatura:
         Sistema de información empresarial

                      Profesor:
                   Cristian Salazar

                 Profesor Ayudante:
                  José Luis Carrasco

                    Estudiante:
                  Mónica Navarrete


               Mayo 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.- Se solicita realizar una consulta que entregue a los estudiantes atrasados en la entrega de sus
préstamos de libros, e indicar la cantidad de días de atraso para cada préstamo. Los campos a
mostrar son: Rut del estudiante, Nombres, Apellidos y el N° de días de atraso. Ayuda: Usar la
fecha del sistema denominada por SYSDATE, y usar la función TRUNC para quitar las horas,
minutos y segundos de las fechas.

select e.rut_est, e.nombres, e.apellidos, p.fecha_e,trunc(sysdate - p.fecha_e) as atraso
     from estudiantes e, prestamo p
      where p.fecha_e < sysdate
      and e.rut_est = p.rut_est




2.- Si cada día efectivo de atraso tiene un valor de $1250, entregue los mismo que en (1), pero
agregando una nueva columna con la deuda adquirida por cada estudiante. Ayuda: Para
multiplicar se usa el *, entonces si se desea multiplicar A por B, sería A*B.

select e.rut_est, e.nombres, e.apellidos, p.fecha_e,trunc(sysdate - p.fecha_e) as atraso,
trunc(sysdate - p.fecha_e)*1250 as deuda
      from estudiantes e, prestamo p
      where p.fecha_e < sysdate
      and e.rut_est = p.rut_est
3.- Entregue la suma de dinero que ganará la Biblioteca acumulada al día de hoy. Ayuda: Para
hacer la suma se usa la función SUM y la función GROUP BY.

select sum((trunc(sysdate) - trunc(p.fecha_e))*1250) as deuda_total
     from prestamo p
    where trunc(sysdate) > trunc(p.fecha_e)




4.- Entregue el promedio de deuda que tienen los estudiantes al día de hoy. Ayuda: Para calcular
el promedio se usa la función AVG y la función GROUP BY.

select avg((trunc(sysdate) - trunc(p.fecha_e))*1250) as promedio_deuda
    from prestamo p
    where trunc(sysdate) > trunc(p.fecha_e)




5.- Entregue la mínima deuda acumulada al día de hoy. Ayuda: Utilice la función MIN y la función
GROUP BY.

select min((trunc(sysdate)-trunc(p.fecha_e))*1250) as minima_deuda
    from prestamo p
    where trunc(sysdate) > trunc(p.fecha_e)




6.- Entregue la máxima deuda acumulada al día de hoy. Ayuda: utilice la función MAX y la función
GROUP BY.

select max((trunc(sysdate)-trunc(p.fecha_e))*1250) as minima_deuda
    from prestamo p
    where trunc(sysdate) > trunc(p.fecha_e)




7.- Suponiendo que ninguno de los estudiantes que se encuentran con préstamo entrega sus
libros, cual será la deuda acumulada para 4 días más. Ayuda: Para sumar un días a una fecha se
hace de la siguiente forma: FECHA + N, donde N es la cantidad de días a sumar y FECHA es la
fecha a la cual le estamos sumandos días. Para el caso de la fecha de hoy, sería SYSDATE + N.

select sum((trunc(sysdate + 4) - trunc(p.fecha_e))*1250) as deuda_total_cuatro_dias
     from prestamo p
    where trunc(sysdate + 4) > trunc(p.fecha_e)
8.- En su sistema de Base de Datos se encuentran 2 Vistas (Views), una llamada MAXIMO y otra
llamada MINIMO. Describa claramente que entregan cada una de ellas, haciendo análisis de cada
parte de la consulta. Ayuda: Busque información sobre Sub-Consultas.

create or replace view          minimos as
select p.rut_est RUT,
       e.apellidos || ' ' || e.nombres NOMBRE,
       l.titulo,
       (trunc(sysdate) - trunc(p.fecha_e)) * 1250 as DIAS_ATRASO
  from prestamo p, estudiantes e, libros l
 where trunc(p.fecha_e) < trunc(sysdate)
   and p.rut_est = e.rut_est
   and p.cod_libro = l.cod_libro
   and (trunc(sysdate) - trunc(p.fecha_e)) =
       (select min(trunc(sysdate) - trunc(p2.fecha_e))
          from prestamo p2
         where trunc(p2.fecha_e) < trunc(sysdate));




Esta tabla muestra los estudiantes que tienen una mínima deuda, utilizando una sub-consulta que
le entrega los días mínimos en la base de datos de los textos atrasados, esta consulta en el último
and corresponde a otra consulta anterior.

create or replace view maximos as
select p.rut_est RUT,
       e.apellidos || ' ' || e.nombres NOMBRE,
       l.titulo,
       (trunc(sysdate) - trunc(p.fecha_e)) * 1250 as DIAS_ATRASO
  from prestamo p, estudiantes e, libros l
 where trunc(p.fecha_e) < trunc(sysdate)
   and p.rut_est = e.rut_est
   and p.cod_libro = l.cod_libro
   and (trunc(sysdate) - trunc(p.fecha_e)) =
       (select max(trunc(sysdate) - trunc(p2.fecha_e))
          from prestamo p2
         where trunc(p2.fecha_e) < trunc(sysdate));




Esta tabla entrega a los estudiantes que poseen la máxima deuda por sus días de atraso, utiliza
una sub-consulta que entrega el máximo números de días de atraso, la consulta que está en el
último and, corresponde a una consulta anteriormente hecha a la base de datos.
9.- Entregue el nombre de la carrera y la cantidad de estudiantes por cada una de ellas que tiene
libros atrasados. Ayuda: Use la función COUNT y la función GROUP BY.

select c.nombre as carrera, count(p.rut_est) as n_alumnos_pres_atarsados
    from carreras c, prestamo p, estudiantes e
    where p.rut_est = e.rut_est
    and e.id_carrera = c.id_carrera
    and trunc(p.fecha_e) < trunc(sysdate)
    group by c.nombre




10.- Los mismo que en (9) pero esta vez que entregue la cantidad de estudiantes que tiene un libro
en préstamo ya sea atrasado o al día.


select c.nombre as carrera, count(p.rut_est) as n_est_un_prest
    from carreras c, prestamo p, estudiantes e
    where p.rut_est = e.rut_est
    and e.id_carrera = c.id_carrera
    group by c.nombre




11.- Investigue como entregar las 10 carreras que tienen mayor cantidad de libros en préstamo.
Ayuda: Se usa un tipo de función llamada ROWNUM y la función ORDER BY.
select "CARRERA","NUMERO_PRESTAMOS_VIGENTES"
    from (select c.nombre as carrera, count(p.rut_est) as numero_prestamos_vigentes
    from carreras c, prestamo p, estudiantes e
    where p.rut_est = e.rut_est
    and e.id_carrera = c.id_carrera
    group by c.nombre
order by numero_prestamos_vigentes desc)
    where rownum <= 10




Bibliografía:

http://www.desarrolloweb.com/articulos/2337.php

http://www.epidataconsulting.com/tikiwiki/tiki-read_article.php?articleId=63

More Related Content

Viewers also liked

Taller: Data Centers, la innovación irrumpe en sus estructuras y funcionalidad
Taller: Data Centers, la innovación irrumpe en sus estructuras y funcionalidadTaller: Data Centers, la innovación irrumpe en sus estructuras y funcionalidad
Taller: Data Centers, la innovación irrumpe en sus estructuras y funcionalidadMundo Contact
 
Directivas de grupo locales en Windows Server 2008
Directivas de grupo locales en Windows Server 2008Directivas de grupo locales en Windows Server 2008
Directivas de grupo locales en Windows Server 2008YinaGarzon
 
Intro sql y plsql
Intro sql y plsqlIntro sql y plsql
Intro sql y plsqlolsoftware
 
GPO-SO
GPO-SOGPO-SO
GPO-SOxipox
 
[WEBINAR] 10 cosas que debes saber sobre Active Directory.
[WEBINAR] 10 cosas que debes saber sobre Active Directory.[WEBINAR] 10 cosas que debes saber sobre Active Directory.
[WEBINAR] 10 cosas que debes saber sobre Active Directory.Grupo Smartekh
 
Correccion del examen de sistema gestor de base de datos
Correccion del examen de sistema gestor de base de datosCorreccion del examen de sistema gestor de base de datos
Correccion del examen de sistema gestor de base de datosDemond Zuicide
 
Active Directory
Active DirectoryActive Directory
Active Directoryshantads
 
Estructura fisica y logica de active directory
Estructura fisica y logica de active directoryEstructura fisica y logica de active directory
Estructura fisica y logica de active directoryEduardo J Onofre
 
Presentacion de Qlik Sense para usuarios QlikView
Presentacion de Qlik Sense para usuarios QlikViewPresentacion de Qlik Sense para usuarios QlikView
Presentacion de Qlik Sense para usuarios QlikViewData IQ Argentina
 
Semana 2 funciones sql en plsql
Semana 2 funciones sql en plsqlSemana 2 funciones sql en plsql
Semana 2 funciones sql en plsqlvictdiazm
 
Unidad vi esp parte 2 procesimientos en plsql y transact sql
Unidad vi esp parte 2 procesimientos en plsql y transact sqlUnidad vi esp parte 2 procesimientos en plsql y transact sql
Unidad vi esp parte 2 procesimientos en plsql y transact sqlTitiushko Jazz
 

Viewers also liked (14)

Taller: Data Centers, la innovación irrumpe en sus estructuras y funcionalidad
Taller: Data Centers, la innovación irrumpe en sus estructuras y funcionalidadTaller: Data Centers, la innovación irrumpe en sus estructuras y funcionalidad
Taller: Data Centers, la innovación irrumpe en sus estructuras y funcionalidad
 
Directivas de grupo locales en Windows Server 2008
Directivas de grupo locales en Windows Server 2008Directivas de grupo locales en Windows Server 2008
Directivas de grupo locales en Windows Server 2008
 
Directiva de grupo
Directiva de grupoDirectiva de grupo
Directiva de grupo
 
Intro sql y plsql
Intro sql y plsqlIntro sql y plsql
Intro sql y plsql
 
GPO-SO
GPO-SOGPO-SO
GPO-SO
 
[WEBINAR] 10 cosas que debes saber sobre Active Directory.
[WEBINAR] 10 cosas que debes saber sobre Active Directory.[WEBINAR] 10 cosas que debes saber sobre Active Directory.
[WEBINAR] 10 cosas que debes saber sobre Active Directory.
 
Presentacion de Qlik Sense
Presentacion de Qlik SensePresentacion de Qlik Sense
Presentacion de Qlik Sense
 
Correccion del examen de sistema gestor de base de datos
Correccion del examen de sistema gestor de base de datosCorreccion del examen de sistema gestor de base de datos
Correccion del examen de sistema gestor de base de datos
 
Active directory
Active directoryActive directory
Active directory
 
Active Directory
Active DirectoryActive Directory
Active Directory
 
Estructura fisica y logica de active directory
Estructura fisica y logica de active directoryEstructura fisica y logica de active directory
Estructura fisica y logica de active directory
 
Presentacion de Qlik Sense para usuarios QlikView
Presentacion de Qlik Sense para usuarios QlikViewPresentacion de Qlik Sense para usuarios QlikView
Presentacion de Qlik Sense para usuarios QlikView
 
Semana 2 funciones sql en plsql
Semana 2 funciones sql en plsqlSemana 2 funciones sql en plsql
Semana 2 funciones sql en plsql
 
Unidad vi esp parte 2 procesimientos en plsql y transact sql
Unidad vi esp parte 2 procesimientos en plsql y transact sqlUnidad vi esp parte 2 procesimientos en plsql y transact sql
Unidad vi esp parte 2 procesimientos en plsql y transact sql
 

Similar to PLSQL Ayudantia

Similar to PLSQL Ayudantia (20)

Tarea 2
Tarea 2Tarea 2
Tarea 2
 
Trabajo 2. ayudantía. elmar alarcón namuncura
Trabajo 2. ayudantía. elmar alarcón namuncuraTrabajo 2. ayudantía. elmar alarcón namuncura
Trabajo 2. ayudantía. elmar alarcón namuncura
 
Laboratorio Nº 3 SIA
Laboratorio Nº 3 SIALaboratorio Nº 3 SIA
Laboratorio Nº 3 SIA
 
Laboratorio Nº 4 SIA
Laboratorio Nº 4 SIALaboratorio Nº 4 SIA
Laboratorio Nº 4 SIA
 
Laboratorio n2 de ayudantía sie
Laboratorio n2 de ayudantía  sieLaboratorio n2 de ayudantía  sie
Laboratorio n2 de ayudantía sie
 
Tarea sia (2)
Tarea sia (2)Tarea sia (2)
Tarea sia (2)
 
Tarea sia
Tarea siaTarea sia
Tarea sia
 
Tarea+siaaa
Tarea+siaaaTarea+siaaa
Tarea+siaaa
 
Laboratorio SIA - 2
Laboratorio SIA - 2Laboratorio SIA - 2
Laboratorio SIA - 2
 
Laboratorio sia 2 (1)
Laboratorio sia 2 (1)Laboratorio sia 2 (1)
Laboratorio sia 2 (1)
 
Primer Informe Proyecto Base I
Primer Informe Proyecto Base IPrimer Informe Proyecto Base I
Primer Informe Proyecto Base I
 
Primer Informe Proyecto Base I
Primer Informe Proyecto Base IPrimer Informe Proyecto Base I
Primer Informe Proyecto Base I
 
Tarea 3
Tarea 3Tarea 3
Tarea 3
 
Informe Proyecto BD I - Sistema Biblioteca
Informe Proyecto BD I -  Sistema BibliotecaInforme Proyecto BD I -  Sistema Biblioteca
Informe Proyecto BD I - Sistema Biblioteca
 
Tarea final sie 2012
Tarea final sie 2012Tarea final sie 2012
Tarea final sie 2012
 
Laboratorio
LaboratorioLaboratorio
Laboratorio
 
Laboratorio 25 de junio
Laboratorio 25 de junioLaboratorio 25 de junio
Laboratorio 25 de junio
 
Tarea ahora
Tarea ahoraTarea ahora
Tarea ahora
 
Lab 2
Lab 2Lab 2
Lab 2
 
Lab 2
Lab 2Lab 2
Lab 2
 

PLSQL Ayudantia

  • 1. Universidad Austral de Chile Facultad de Ciencias Económicas y Administrativas Ingeniería Comercial Sistema de Información Empresarial Guía de laboratorio N° 2 PLSQL Developer Asignatura: Sistema de información empresarial Profesor: Cristian Salazar Profesor Ayudante: José Luis Carrasco Estudiante: Mónica Navarrete Mayo 2012 - VALDIVIA
  • 2. 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.- Se solicita realizar una consulta que entregue a los estudiantes atrasados en la entrega de sus préstamos de libros, e indicar la cantidad de días de atraso para cada préstamo. Los campos a mostrar son: Rut del estudiante, Nombres, Apellidos y el N° de días de atraso. Ayuda: Usar la fecha del sistema denominada por SYSDATE, y usar la función TRUNC para quitar las horas, minutos y segundos de las fechas. select e.rut_est, e.nombres, e.apellidos, p.fecha_e,trunc(sysdate - p.fecha_e) as atraso from estudiantes e, prestamo p where p.fecha_e < sysdate and e.rut_est = p.rut_est 2.- Si cada día efectivo de atraso tiene un valor de $1250, entregue los mismo que en (1), pero agregando una nueva columna con la deuda adquirida por cada estudiante. Ayuda: Para multiplicar se usa el *, entonces si se desea multiplicar A por B, sería A*B. select e.rut_est, e.nombres, e.apellidos, p.fecha_e,trunc(sysdate - p.fecha_e) as atraso, trunc(sysdate - p.fecha_e)*1250 as deuda from estudiantes e, prestamo p where p.fecha_e < sysdate and e.rut_est = p.rut_est
  • 3. 3.- Entregue la suma de dinero que ganará la Biblioteca acumulada al día de hoy. Ayuda: Para hacer la suma se usa la función SUM y la función GROUP BY. select sum((trunc(sysdate) - trunc(p.fecha_e))*1250) as deuda_total from prestamo p where trunc(sysdate) > trunc(p.fecha_e) 4.- Entregue el promedio de deuda que tienen los estudiantes al día de hoy. Ayuda: Para calcular el promedio se usa la función AVG y la función GROUP BY. select avg((trunc(sysdate) - trunc(p.fecha_e))*1250) as promedio_deuda from prestamo p where trunc(sysdate) > trunc(p.fecha_e) 5.- Entregue la mínima deuda acumulada al día de hoy. Ayuda: Utilice la función MIN y la función GROUP BY. select min((trunc(sysdate)-trunc(p.fecha_e))*1250) as minima_deuda from prestamo p where trunc(sysdate) > trunc(p.fecha_e) 6.- Entregue la máxima deuda acumulada al día de hoy. Ayuda: utilice la función MAX y la función GROUP BY. select max((trunc(sysdate)-trunc(p.fecha_e))*1250) as minima_deuda from prestamo p where trunc(sysdate) > trunc(p.fecha_e) 7.- Suponiendo que ninguno de los estudiantes que se encuentran con préstamo entrega sus libros, cual será la deuda acumulada para 4 días más. Ayuda: Para sumar un días a una fecha se hace de la siguiente forma: FECHA + N, donde N es la cantidad de días a sumar y FECHA es la fecha a la cual le estamos sumandos días. Para el caso de la fecha de hoy, sería SYSDATE + N. select sum((trunc(sysdate + 4) - trunc(p.fecha_e))*1250) as deuda_total_cuatro_dias from prestamo p where trunc(sysdate + 4) > trunc(p.fecha_e)
  • 4. 8.- En su sistema de Base de Datos se encuentran 2 Vistas (Views), una llamada MAXIMO y otra llamada MINIMO. Describa claramente que entregan cada una de ellas, haciendo análisis de cada parte de la consulta. Ayuda: Busque información sobre Sub-Consultas. create or replace view minimos as select p.rut_est RUT, e.apellidos || ' ' || e.nombres NOMBRE, l.titulo, (trunc(sysdate) - trunc(p.fecha_e)) * 1250 as DIAS_ATRASO from prestamo p, estudiantes e, libros l where trunc(p.fecha_e) < trunc(sysdate) and p.rut_est = e.rut_est and p.cod_libro = l.cod_libro and (trunc(sysdate) - trunc(p.fecha_e)) = (select min(trunc(sysdate) - trunc(p2.fecha_e)) from prestamo p2 where trunc(p2.fecha_e) < trunc(sysdate)); Esta tabla muestra los estudiantes que tienen una mínima deuda, utilizando una sub-consulta que le entrega los días mínimos en la base de datos de los textos atrasados, esta consulta en el último and corresponde a otra consulta anterior. create or replace view maximos as select p.rut_est RUT, e.apellidos || ' ' || e.nombres NOMBRE, l.titulo, (trunc(sysdate) - trunc(p.fecha_e)) * 1250 as DIAS_ATRASO from prestamo p, estudiantes e, libros l where trunc(p.fecha_e) < trunc(sysdate) and p.rut_est = e.rut_est and p.cod_libro = l.cod_libro and (trunc(sysdate) - trunc(p.fecha_e)) = (select max(trunc(sysdate) - trunc(p2.fecha_e)) from prestamo p2 where trunc(p2.fecha_e) < trunc(sysdate)); Esta tabla entrega a los estudiantes que poseen la máxima deuda por sus días de atraso, utiliza una sub-consulta que entrega el máximo números de días de atraso, la consulta que está en el último and, corresponde a una consulta anteriormente hecha a la base de datos.
  • 5. 9.- Entregue el nombre de la carrera y la cantidad de estudiantes por cada una de ellas que tiene libros atrasados. Ayuda: Use la función COUNT y la función GROUP BY. select c.nombre as carrera, count(p.rut_est) as n_alumnos_pres_atarsados from carreras c, prestamo p, estudiantes e where p.rut_est = e.rut_est and e.id_carrera = c.id_carrera and trunc(p.fecha_e) < trunc(sysdate) group by c.nombre 10.- Los mismo que en (9) pero esta vez que entregue la cantidad de estudiantes que tiene un libro en préstamo ya sea atrasado o al día. select c.nombre as carrera, count(p.rut_est) as n_est_un_prest from carreras c, prestamo p, estudiantes e where p.rut_est = e.rut_est and e.id_carrera = c.id_carrera group by c.nombre 11.- Investigue como entregar las 10 carreras que tienen mayor cantidad de libros en préstamo. Ayuda: Se usa un tipo de función llamada ROWNUM y la función ORDER BY. select "CARRERA","NUMERO_PRESTAMOS_VIGENTES" from (select c.nombre as carrera, count(p.rut_est) as numero_prestamos_vigentes from carreras c, prestamo p, estudiantes e where p.rut_est = e.rut_est and e.id_carrera = c.id_carrera group by c.nombre
  • 6. order by numero_prestamos_vigentes desc) where rownum <= 10 Bibliografía: http://www.desarrolloweb.com/articulos/2337.php http://www.epidataconsulting.com/tikiwiki/tiki-read_article.php?articleId=63