SlideShare una empresa de Scribd logo
Claudio Angulo S.


             Guía Laboratorio Nº 5: Consultas SQL


   -   Modelo de datos:




Para obtener todos los registros contenidos en la tabla “CARRERAS” debemos ejecutar la
siguiente consulta:

                                SELECT *
                                FROM CARRERAS




En donde el ‘*’ significa que queremos obtener todas las columnas, en este caso ID_CARRERA,
NOMBRE, ID_CAMPUS. El resultado muestra lo siguiente:




Ahora si queremos saber cuántas carreras (registros) se encuentran en la tabla CARRERAS,
debemos usar la función COUNT de SQL, la cual se aplica sobre una sola columna (también se
puede usar como argumento el *). Los siguientes ejemplos entregan el mismo resultado:

          SELECT COUNT(*)                            SELECT COUNT(ID_CARRERA)
          FROM CARRERAS                              FROM CARRERAS
Claudio Angulo S.


Los resultados son:




Ahora si deseamos obtener registros que cumplan cierta condición, usamos la cláusula
WHERE.
Esta cláusula nos permite definir una o más de una condición, como se muestra a
continuación, en donde se desean obtener las carreras que tienen como código de carrera
(ID_CARRERA) distinto a 3:

                             SELECT *
                             FROM CARRERAS
                             WHERE ID_CARRERA <> 3




El resultado mostrado es:




Donde vemos que la carrera con código 3 no se muestra (Informática).

Como podemos ver, comparar números en SQL es muy fácil y directo, pero para comparar
textos la sintaxis cambia un poco. En el siguiente ejemplo se muestran todas las carreras,
menos informática, solo que esta vez se usa el NOMBRE de la tabla CARRERAS para comparar
en vez del ID_CARRERA como en el ejemplo anterior, para ello se deben usar comillas simples
como se muestra a continuación:

                       SELECT *
                       FROM CARRERAS
                       WHERE NOMBRE = 'Informatica'


El resultado entregado es:




También en SQL se puede obtener la fecha actual del sistema (la fecha que tiene el
computador), de la siguiente forma:

                             SELECT SYSDATE
                             FROM DUAL
Claudio Angulo S.




El resultado es:




Se puede obtener además la fecha del sistema con distintos formatos, como en los siguientes
ejemplos:
 SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD')
 FROM DUAL



 SELECT TO_CHAR(SYSDATE,'DD') as DIA
 FROM DUAL


 SELECT TO_CHAR(SYSDATE,'MONTH') as MES
 FROM DUAL


 SELECT TO_CHAR(SYSDATE,'DD/MM/YYYY') as MES
 FROM DUAL
Claudio Angulo S.


Revisaremos distintas tipos de consultas sobre éste modelo de datos.


   i.     Lista de Estudiantes (Nombre-Apellido-Edad-Fono-Dirección)

          select  e.nombres,
                  e.apellidos,
                  e.edad,
                  e.fono,
                  e.direccion
          from ESTUDIANTES e


   ii.    La misma lista de estudiantes, pero ordenada de mayor a menor por la edad.

          select e.nombres,
                   e.apellidos,
                   e.edad,
                   e.fono,
                   e.direccion
          from ESTUDIANTES e
          order by e.edad DESC



   iii.   A la lista de estudiantes agregamos la información del nombre de la carrera a la
          cual pertenece cada estudiante.

          select   e.nombres,
                   e.apellidos,
                   e.edad,
                   e.fono,
                   e.direccion,
                   c.nombre
          from ESTUDIANTES e, CARRERAS c
          where c.id_carrera = e.id_carrera
          order by e.edad DESC



   iv.    El número de carreras que se encuentran registradas en la base de datos.

          select count(*) as "Numero de Carreras"
          from carreras
Claudio Angulo S.


v.     A la lista de estudiantes, agregamos la información del campus asociado a la
       carrera a la cual pertenece cada estudiante.

       select   e.nombres,
                e.apellidos,
                e.edad,
                e.fono,
                e.direccion,
                c.nombre AS "Nombre Carrera",
                cs.nombre AS CAMPUS
       from ESTUDIANTES e, CARRERAS c, campus cs
       where c.id_carrera = e.id_carrera
       AND cs.id_campus = c.id_campus
       order by e.edad DESC



vi.    A nuestra lista de estudiantes, agregaremos el nombre de
       la ciudad asociada al campus.

       select   e.nombres,
                e.apellidos,
                e.edad,
                e.fono,
                e.direccion,
                c.nombre AS "Nombre Carrera",
                cs.nombre AS CAMPUS,
                ci.nombre as "Nombre Ciudad"
       from ESTUDIANTES e, CARRERAS c, campus cs, ciudad ci
       where c.id_carrera = e.id_carrera
       AND cs.id_campus = c.id_campus
       AND cs.id_ciudad = ci.id_ciudad
       order by e.edad DESC


vii.   Obtenemos la lista de funcionarios (nombre-apellido-rut-edad-dirección-salud)
       que tengan una edad superior a los 35 años.


       select   f.nombres,
                f.apellidos,
                f.rut_func,
                f.edad,
                f.direccion,
                f.salud
       from funcionarios f
       where f.edad > 35

       (Probar cambiando el operador de comparación por: <> )
Claudio Angulo S.


viii.   Obtener la lista de préstamos en que su fecha de devolución sea mayor a la fecha
        actual: 25/04/2011.


        select *
        from prestamo p
        where p.fecha_e > to_char(sysdate, 'dd/mm/yyyy')

Más contenido relacionado

PPT
PDF
DOCX
Laboratorio 2
DOCX
Laboratorio 2 SIA
DOC
Prueba 1 oracle_273
PPT
Lab5 sql
PDF
Sql apoyo
PPTX
Espacios de Participación
Laboratorio 2
Laboratorio 2 SIA
Prueba 1 oracle_273
Lab5 sql
Sql apoyo
Espacios de Participación

Destacado (7)

PDF
Olimpiadas la serena2012
DOC
Programa de sia_2012
DOCX
Tarea SIA 17.05.2012
DOCX
Tarea 14.05.2012 sia
PPT
Aprendiendo a Teletrabajar
PPTX
Insertar prezi en wordpress
PPT
Busqueda Informacion en internet
Olimpiadas la serena2012
Programa de sia_2012
Tarea SIA 17.05.2012
Tarea 14.05.2012 sia
Aprendiendo a Teletrabajar
Insertar prezi en wordpress
Busqueda Informacion en internet
Publicidad

Similar a Guia lab5 (20)

PDF
Laboratorio
DOC
Primer Informe sistemas
PDF
DOCX
Tarea nº 1 sistemas (1)
DOCX
Trabajo sistemas
PDF
Consultas en oracle
DOC
Prueba Oracle
DOCX
Tarea nº 1 sistemas (1)
DOCX
Tarea nº 1 sistemas
DOCX
Laboratorio 1
DOCX
Laboratorio N°1 de Sistemas de Información
PDF
Laboratorio N° 1 SIA
PDF
Laboratorio sia cnavarro pvargas
PPT
DOC
Prueba Sistema Oracle
PDF
Manipulación avanzada de datos con sql
PDF
Manipulación avanzada de datos con sql parte1
PDF
Dokumen.site ejercicios resueltos-sqlpdf
Laboratorio
Primer Informe sistemas
Tarea nº 1 sistemas (1)
Trabajo sistemas
Consultas en oracle
Prueba Oracle
Tarea nº 1 sistemas (1)
Tarea nº 1 sistemas
Laboratorio 1
Laboratorio N°1 de Sistemas de Información
Laboratorio N° 1 SIA
Laboratorio sia cnavarro pvargas
Prueba Sistema Oracle
Manipulación avanzada de datos con sql
Manipulación avanzada de datos con sql parte1
Dokumen.site ejercicios resueltos-sqlpdf
Publicidad

Más de Jose Olivera (9)

DOCX
Ensayo sia auditoría informatica 29.05.2011
DOCX
25.06.2012
DOCX
Ayudantia 14 05
DOCX
Tarea sia 30-04-12
DOCX
Tarea sia 30-04-12
PDF
Lab 23 04
DOC
Factura electronica
PDF
Sql apoyo
PPT
Lab5 sql
Ensayo sia auditoría informatica 29.05.2011
25.06.2012
Ayudantia 14 05
Tarea sia 30-04-12
Tarea sia 30-04-12
Lab 23 04
Factura electronica
Sql apoyo
Lab5 sql

Guia lab5

  • 1. Claudio Angulo S. Guía Laboratorio Nº 5: Consultas SQL - Modelo de datos: Para obtener todos los registros contenidos en la tabla “CARRERAS” debemos ejecutar la siguiente consulta: SELECT * FROM CARRERAS En donde el ‘*’ significa que queremos obtener todas las columnas, en este caso ID_CARRERA, NOMBRE, ID_CAMPUS. El resultado muestra lo siguiente: Ahora si queremos saber cuántas carreras (registros) se encuentran en la tabla CARRERAS, debemos usar la función COUNT de SQL, la cual se aplica sobre una sola columna (también se puede usar como argumento el *). Los siguientes ejemplos entregan el mismo resultado: SELECT COUNT(*) SELECT COUNT(ID_CARRERA) FROM CARRERAS FROM CARRERAS
  • 2. Claudio Angulo S. Los resultados son: Ahora si deseamos obtener registros que cumplan cierta condición, usamos la cláusula WHERE. Esta cláusula nos permite definir una o más de una condición, como se muestra a continuación, en donde se desean obtener las carreras que tienen como código de carrera (ID_CARRERA) distinto a 3: SELECT * FROM CARRERAS WHERE ID_CARRERA <> 3 El resultado mostrado es: Donde vemos que la carrera con código 3 no se muestra (Informática). Como podemos ver, comparar números en SQL es muy fácil y directo, pero para comparar textos la sintaxis cambia un poco. En el siguiente ejemplo se muestran todas las carreras, menos informática, solo que esta vez se usa el NOMBRE de la tabla CARRERAS para comparar en vez del ID_CARRERA como en el ejemplo anterior, para ello se deben usar comillas simples como se muestra a continuación: SELECT * FROM CARRERAS WHERE NOMBRE = 'Informatica' El resultado entregado es: También en SQL se puede obtener la fecha actual del sistema (la fecha que tiene el computador), de la siguiente forma: SELECT SYSDATE FROM DUAL
  • 3. Claudio Angulo S. El resultado es: Se puede obtener además la fecha del sistema con distintos formatos, como en los siguientes ejemplos: SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD') FROM DUAL SELECT TO_CHAR(SYSDATE,'DD') as DIA FROM DUAL SELECT TO_CHAR(SYSDATE,'MONTH') as MES FROM DUAL SELECT TO_CHAR(SYSDATE,'DD/MM/YYYY') as MES FROM DUAL
  • 4. Claudio Angulo S. Revisaremos distintas tipos de consultas sobre éste modelo de datos. i. Lista de Estudiantes (Nombre-Apellido-Edad-Fono-Dirección) select e.nombres, e.apellidos, e.edad, e.fono, e.direccion from ESTUDIANTES e ii. La misma lista de estudiantes, pero ordenada de mayor a menor por la edad. select e.nombres, e.apellidos, e.edad, e.fono, e.direccion from ESTUDIANTES e order by e.edad DESC iii. A la lista de estudiantes agregamos la información del nombre de la carrera a la cual pertenece cada estudiante. select e.nombres, e.apellidos, e.edad, e.fono, e.direccion, c.nombre from ESTUDIANTES e, CARRERAS c where c.id_carrera = e.id_carrera order by e.edad DESC iv. El número de carreras que se encuentran registradas en la base de datos. select count(*) as "Numero de Carreras" from carreras
  • 5. Claudio Angulo S. v. A la lista de estudiantes, agregamos la información del campus asociado a la carrera a la cual pertenece cada estudiante. select e.nombres, e.apellidos, e.edad, e.fono, e.direccion, c.nombre AS "Nombre Carrera", cs.nombre AS CAMPUS from ESTUDIANTES e, CARRERAS c, campus cs where c.id_carrera = e.id_carrera AND cs.id_campus = c.id_campus order by e.edad DESC vi. A nuestra lista de estudiantes, agregaremos el nombre de la ciudad asociada al campus. select e.nombres, e.apellidos, e.edad, e.fono, e.direccion, c.nombre AS "Nombre Carrera", cs.nombre AS CAMPUS, ci.nombre as "Nombre Ciudad" from ESTUDIANTES e, CARRERAS c, campus cs, ciudad ci where c.id_carrera = e.id_carrera AND cs.id_campus = c.id_campus AND cs.id_ciudad = ci.id_ciudad order by e.edad DESC vii. Obtenemos la lista de funcionarios (nombre-apellido-rut-edad-dirección-salud) que tengan una edad superior a los 35 años. select f.nombres, f.apellidos, f.rut_func, f.edad, f.direccion, f.salud from funcionarios f where f.edad > 35 (Probar cambiando el operador de comparación por: <> )
  • 6. Claudio Angulo S. viii. Obtener la lista de préstamos en que su fecha de devolución sea mayor a la fecha actual: 25/04/2011. select * from prestamo p where p.fecha_e > to_char(sysdate, 'dd/mm/yyyy')