Universidad Austral de Chile
 Facultad de Ciencias Económicas y Administrativas
           Escuela de Ingeniería Comercial
        Sistemas de información empresarial




TAREA AYUDANTÍA
     PLSQL




                                        Profesor:    Cristian Salazar
                                        Ayudante:    José Luis Carrasco
                                        Alumno:      Alejandro Ramírez




             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:


           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;




Solución (113 resultados):
b) Que entregue los estudiantes que son de Auditoria (NOMBRES y APELLIDOS del
      estudiante, NOMBRE de la carrera y NOMBRE del campus).



Consulta SQL:


                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;



Solución (81 resultados):
c) Que entregue los estudiantes que se atrasaron en la entrega de los libros(RUT, NOMBRES,
      APELLIDOS y FONO).

Consulta SQL:

                 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;




Solución (291 resultados):
d) La cantidad de libros prestados.



Consulta SQL:

                    select count(p.cod_libro) CANT_LIBROS_PRESTADOS
                    from Prestamo p;




Solución (291 resultados):
e) Los libros de editoriales extranjeras (CODIGO, TITULO, AÑO y PAIS de ORIGEN).

Consulta SQL:



                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;




Solución (1094 resultados):
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:

                  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;



Solución (275 resultados):
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:
                       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;



Solución (45 resultados):
b) El número de Estudiantes por Campus

Consulta SQL:


                  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;


Solución:




   c) El número de Estudiantes por Ciudad

Consulta SQL:

                  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;




Solución:
d) El numero de Préstamos atrasados

Consulta SQL:


                 select count(fecha_e) CANT_LIBROS_ATRASADOS
                 from prestamo
                 where fecha_e < sysdate;




Solución:




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

Consulta SQL:

                  select count(fecha_e) CANT_LIBROS_ACTIVOS
                  from prestamo
                  where fecha_e > sysdate;




Solución:

Trabajo ayudantía

  • 1.
    Universidad Austral deChile Facultad de Ciencias Económicas y Administrativas Escuela de Ingeniería Comercial Sistemas de información empresarial TAREA AYUDANTÍA PLSQL Profesor: Cristian Salazar Ayudante: José Luis Carrasco Alumno: Alejandro Ramírez VALDIVIA, ABRIL 2012
  • 2.
    ACTIVIDADES Supuestos: La basede 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.
  • 3.
    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: 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; Solución (113 resultados):
  • 4.
    b) Que entreguelos estudiantes que son de Auditoria (NOMBRES y APELLIDOS del estudiante, NOMBRE de la carrera y NOMBRE del campus). Consulta SQL: 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; Solución (81 resultados):
  • 5.
    c) Que entreguelos estudiantes que se atrasaron en la entrega de los libros(RUT, NOMBRES, APELLIDOS y FONO). Consulta SQL: 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; Solución (291 resultados):
  • 6.
    d) La cantidadde libros prestados. Consulta SQL: select count(p.cod_libro) CANT_LIBROS_PRESTADOS from Prestamo p; Solución (291 resultados):
  • 7.
    e) Los librosde editoriales extranjeras (CODIGO, TITULO, AÑO y PAIS de ORIGEN). Consulta SQL: 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; Solución (1094 resultados):
  • 8.
    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: 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; Solución (275 resultados):
  • 9.
    2) Se requiereobtener 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;
  • 10.
  • 11.
  • 12.
    3) a) El número de Estudiantes por Carrera. Consulta SQL: 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; Solución (45 resultados):
  • 13.
    b) El númerode Estudiantes por Campus Consulta SQL: 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; Solución: c) El número de Estudiantes por Ciudad Consulta SQL: 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; Solución:
  • 14.
    d) El numerode Préstamos atrasados Consulta SQL: select count(fecha_e) CANT_LIBROS_ATRASADOS from prestamo where fecha_e < sysdate; Solución: e) El número de Prestamos Activos, No atrasados. Consulta SQL: select count(fecha_e) CANT_LIBROS_ACTIVOS from prestamo where fecha_e > sysdate; Solución: