SlideShare una empresa de Scribd logo
1 de 6
Descargar para leer sin conexión
Universidad Austral de Chile.
 Facultad de Ciencias Económicas y Administrativas
             Escuela Ingeniería Comercial
        Sistemas de Información Empresarial.




Laboratorio de
Ayudantía N°2


                            Profesor: Cristian Salazar C.
                            Ayudante: José Luis Carrasco V.
                            Alumna: Katherine Chamorro R.
                            Fecha:    21 de mayo del 2012.
A continuación se presentará el desarrollo del laboratorio de ayudantía “lab_14_05”:

                                        ACTIVIDADES.
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, trunc(sysdate)-p.fecha_e as dias_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, trunc(sysdate)-p.fecha_e as dias_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.

1° Programación sin Group by:

select sum((trunc(sysdate)-p.fecha_e)*1250) as total_ingreso
From prestamo p
where p.fecha_e < sysdate;

2° Programación con Group by:

select sum((trunc(sysdate)-p.fecha_e)*1250) as total_ingreso
From prestamo p
where p.fecha_e < sysdate
group by 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.



1° Programación sin Group by:

select AVG ((trunc(sysdate)-p.fecha_e)*1250) as promedio_deuda_est
From prestamo p
where p.fecha_e < sysdate;

2° Programación con Group by:

select p.rut_est, AVG ((trunc(sysdate)-p.fecha_e)*1250) as promedio_deuda_est
From prestamo p
where p.fecha_e < sysdate
group by p.rut_est;




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



1° Programación sin Group by:

select MIN ((trunc(sysdate)-p.fecha_e)*1250) as min_deuda_dia
From prestamo p
where p.fecha_e < sysdate;

2° Programación con Group by:

select p.fecha_e, MIN ((trunc(sysdate)-p.fecha_e)*1250) as min_deuda_dia
From prestamo p
where p.fecha_e < sysdate
group by 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.

1° Programación sin Group by:

select MAX ((trunc(sysdate)-p.fecha_e)*1250) as max_deuda_dia
From prestamo p
where p.fecha_e < sysdate;

2° Programación con Group by:

select p.fecha_e, MAX ((trunc(sysdate)-p.fecha_e)*1250) as max_deuda_dia
From prestamo p
where p.fecha_e < sysdate
group by fecha_e;



7.- Suponiendo que ninguno de los estudiantes que se encuentran con préstamo entrega sus
libros, cuál 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)-p.fecha_e)*1250) as deuda_acumulada
From prestamo p
where p.fecha_e < sysdate;



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.

       La vista máximos guardada en el sistema de base de datos nos muestra el Rut y nombre del
estudiante, además muestra el título del libro prestado y la deuda que tiene el estudiante hasta el
momento, además del estudiante que más deuda tiene.

        La vista mínimos nos muestra también el nombre y el nombre del estudiante, además del título
del libro prestado y la deuda que tiene el estudiante hasta el momento. Los 4 estudiantes que aparecen
de la vista son los que tienen la menor deuda.

      Y con respecto al tema de las subconsultas, se encontró la siguiente información: “una
subconsulta es una instrucción SELECT anidada dentro de otra instrucción SELECT: SELECT INTO,
INSERT, INTO, DELETE, o UPDATE o dentro de otra subconsulta. Los formatos para las instrucciones de
subconsultas son las siguientes:
   WHERE expression [NOT] IN (subconsulta)
              WHERE expression operador_comparacion [ANY | ALL] (subconsulta)
              WHERE [NOT] EXISTS (subconsulta )

         Una subconsulta puede devolver:

   1. Una sola columna o un solo valor en cualquier lugar en donde pueda utilizarse una expresión de
      un sólo valor y puede compararse usando los siguientes operadores: =,<,>,<=,>= ,<>,!> y !<.
   2. Una sola columna o muchos valores que se pueden utilizar con el operador de comparación de
      listas IN en la cláusula WHERE.
   3. Muchas filas que pueden utilizarse para comprobar la existencia, usando la palabra EXISTS en la
      cláusula WHERE”.


       Se puede usar el predicado ANY o SOME, para recuperar registros de la consulta
principal, que satisfagan la comparación con cualquier otro registro recuperado en la
subconsulta. Ejemplo:




       En el ejemplo anterior se usa el operador de comparación >, es así que, >ALL
significa mayor que cualquier valor; es decir, mayor que el valor máximo. Por ejemplo,
>ALL (1, 2, 3,....7) significa mayor que 7. De manera similar, >ANY significa mayor que,
como mínimo, un valor, es decir, mayor que el mínimo. En consecuencia, >ANY (1, 2, 3, ...
7) significa mayor que 1. Aquí otro ejemplo:




NOTA: Los 2 ejemplos anteriores fueron obtenidos de la Documentación de Microsoft SQL Server.
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, count((trunc(sysdate)-p.fecha_e)) as num_atrasado
from carreras c, prestamo p, estudiantes e
where p.rut_est = e.rut_est
and c.id_carrera = e.id_carrera
group by c.nombre;




10.- Lo 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 l.cod_libro, count(p.rut_est) as cant_est
from libros l, prestamo p
where l.cod_libro = p.cod_libro
group by l.cod_libro;




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 *
from prest_atrasado_carrera
where rownum <= 10
order by num_atrasado desc;

Más contenido relacionado

Similar a Laboratorio n2 de ayudantía sie

Similar a Laboratorio n2 de ayudantía sie (20)

PLSQL Ayudantia
PLSQL Ayudantia PLSQL Ayudantia
PLSQL Ayudantia
 
Tarea 2
Tarea 2Tarea 2
Tarea 2
 
Segundo informe ayudantía
Segundo informe ayudantíaSegundo informe ayudantía
Segundo informe ayudantía
 
Laboratorio n° 2
Laboratorio n° 2Laboratorio n° 2
Laboratorio n° 2
 
Tarea 2
Tarea 2Tarea 2
Tarea 2
 
Prueba 1 oracle_273
Prueba 1 oracle_273Prueba 1 oracle_273
Prueba 1 oracle_273
 
Lab 04 06
Lab 04 06Lab 04 06
Lab 04 06
 
Prueba Sistema Oracle
Prueba Sistema OraclePrueba Sistema Oracle
Prueba Sistema Oracle
 
Laboratorio
LaboratorioLaboratorio
Laboratorio
 
Tarea 3
Tarea 3Tarea 3
Tarea 3
 
Informe Tecnico Unidad 1 (Rubi veronica)
Informe Tecnico Unidad 1 (Rubi veronica)Informe Tecnico Unidad 1 (Rubi veronica)
Informe Tecnico Unidad 1 (Rubi veronica)
 
REPORTE RUBI VERONICA J3 ISC A
REPORTE RUBI VERONICA J3 ISC AREPORTE RUBI VERONICA J3 ISC A
REPORTE RUBI VERONICA J3 ISC A
 
01 introduccion (1)my sql
01 introduccion (1)my sql01 introduccion (1)my sql
01 introduccion (1)my sql
 
Reporte 9
Reporte 9Reporte 9
Reporte 9
 
ITESO
ITESOITESO
ITESO
 
Trabajo sistemas
Trabajo sistemasTrabajo sistemas
Trabajo sistemas
 
Curso Uml Caso Estudio Terry Quatrani
Curso Uml Caso Estudio Terry QuatraniCurso Uml Caso Estudio Terry Quatrani
Curso Uml Caso Estudio Terry Quatrani
 
Lenguajes formales
Lenguajes formalesLenguajes formales
Lenguajes formales
 
Lenguajes formales
Lenguajes formalesLenguajes formales
Lenguajes formales
 
P:\Lenguajes Formales
P:\Lenguajes FormalesP:\Lenguajes Formales
P:\Lenguajes Formales
 

Laboratorio n2 de ayudantía sie

  • 1. Universidad Austral de Chile. Facultad de Ciencias Económicas y Administrativas Escuela Ingeniería Comercial Sistemas de Información Empresarial. Laboratorio de Ayudantía N°2 Profesor: Cristian Salazar C. Ayudante: José Luis Carrasco V. Alumna: Katherine Chamorro R. Fecha: 21 de mayo del 2012.
  • 2. A continuación se presentará el desarrollo del laboratorio de ayudantía “lab_14_05”: ACTIVIDADES. 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, trunc(sysdate)-p.fecha_e as dias_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, trunc(sysdate)-p.fecha_e as dias_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. 1° Programación sin Group by: select sum((trunc(sysdate)-p.fecha_e)*1250) as total_ingreso From prestamo p where p.fecha_e < sysdate; 2° Programación con Group by: select sum((trunc(sysdate)-p.fecha_e)*1250) as total_ingreso From prestamo p where p.fecha_e < sysdate group by fecha_e;
  • 3. 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. 1° Programación sin Group by: select AVG ((trunc(sysdate)-p.fecha_e)*1250) as promedio_deuda_est From prestamo p where p.fecha_e < sysdate; 2° Programación con Group by: select p.rut_est, AVG ((trunc(sysdate)-p.fecha_e)*1250) as promedio_deuda_est From prestamo p where p.fecha_e < sysdate group by p.rut_est; 5.- Entregue la mínima deuda acumulada al día de hoy. Ayuda: Utilice la función MIN y la función GROUP BY. 1° Programación sin Group by: select MIN ((trunc(sysdate)-p.fecha_e)*1250) as min_deuda_dia From prestamo p where p.fecha_e < sysdate; 2° Programación con Group by: select p.fecha_e, MIN ((trunc(sysdate)-p.fecha_e)*1250) as min_deuda_dia From prestamo p where p.fecha_e < sysdate group by fecha_e;
  • 4. 6.- Entregue la máxima deuda acumulada al día de hoy. Ayuda: utilice la función MAX y la función GROUP BY. 1° Programación sin Group by: select MAX ((trunc(sysdate)-p.fecha_e)*1250) as max_deuda_dia From prestamo p where p.fecha_e < sysdate; 2° Programación con Group by: select p.fecha_e, MAX ((trunc(sysdate)-p.fecha_e)*1250) as max_deuda_dia From prestamo p where p.fecha_e < sysdate group by fecha_e; 7.- Suponiendo que ninguno de los estudiantes que se encuentran con préstamo entrega sus libros, cuál 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)-p.fecha_e)*1250) as deuda_acumulada From prestamo p where p.fecha_e < sysdate; 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. La vista máximos guardada en el sistema de base de datos nos muestra el Rut y nombre del estudiante, además muestra el título del libro prestado y la deuda que tiene el estudiante hasta el momento, además del estudiante que más deuda tiene. La vista mínimos nos muestra también el nombre y el nombre del estudiante, además del título del libro prestado y la deuda que tiene el estudiante hasta el momento. Los 4 estudiantes que aparecen de la vista son los que tienen la menor deuda. Y con respecto al tema de las subconsultas, se encontró la siguiente información: “una subconsulta es una instrucción SELECT anidada dentro de otra instrucción SELECT: SELECT INTO, INSERT, INTO, DELETE, o UPDATE o dentro de otra subconsulta. Los formatos para las instrucciones de subconsultas son las siguientes:
  • 5. WHERE expression [NOT] IN (subconsulta)  WHERE expression operador_comparacion [ANY | ALL] (subconsulta)  WHERE [NOT] EXISTS (subconsulta ) Una subconsulta puede devolver: 1. Una sola columna o un solo valor en cualquier lugar en donde pueda utilizarse una expresión de un sólo valor y puede compararse usando los siguientes operadores: =,<,>,<=,>= ,<>,!> y !<. 2. Una sola columna o muchos valores que se pueden utilizar con el operador de comparación de listas IN en la cláusula WHERE. 3. Muchas filas que pueden utilizarse para comprobar la existencia, usando la palabra EXISTS en la cláusula WHERE”. Se puede usar el predicado ANY o SOME, para recuperar registros de la consulta principal, que satisfagan la comparación con cualquier otro registro recuperado en la subconsulta. Ejemplo: En el ejemplo anterior se usa el operador de comparación >, es así que, >ALL significa mayor que cualquier valor; es decir, mayor que el valor máximo. Por ejemplo, >ALL (1, 2, 3,....7) significa mayor que 7. De manera similar, >ANY significa mayor que, como mínimo, un valor, es decir, mayor que el mínimo. En consecuencia, >ANY (1, 2, 3, ... 7) significa mayor que 1. Aquí otro ejemplo: NOTA: Los 2 ejemplos anteriores fueron obtenidos de la Documentación de Microsoft SQL Server.
  • 6. 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, count((trunc(sysdate)-p.fecha_e)) as num_atrasado from carreras c, prestamo p, estudiantes e where p.rut_est = e.rut_est and c.id_carrera = e.id_carrera group by c.nombre; 10.- Lo 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 l.cod_libro, count(p.rut_est) as cant_est from libros l, prestamo p where l.cod_libro = p.cod_libro group by l.cod_libro; 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 * from prest_atrasado_carrera where rownum <= 10 order by num_atrasado desc;