SlideShare una empresa de Scribd logo
UNIVERSIDAD AUSTRAL DE CHILE
FACULTAD DE CIENCIAS ECONÓMICAS Y ADMINISTRATIVAS
           INSTITUTO DE ADMINISTRACIÓN
                     ADMI 273




Guía de consultas
      SQL
                     Integrantes:
                   Valeria Muñoz O.
                   Makarena Ruiz H.
                   Nadia Muñoz B.

                       Profesor:
                   Cristian Salazar C.

                       Asignatura:
           Sistemas de Información Empresarial




                  Valdivia, 16/04/2012
Desarrollo Guía

    Modelo de datos:




Fuente: Microsoft Visio 2010. Elaboración propia.

    Consultas:

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

SELECT *
FROM carreras;

El resultado es el siguiente:




2) 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 (*)
FROM carreras;

cantidad de carreras
      Expr1000
                     5


SELECT COUNT (id_carrera)
FROM carreras;

cantidad de carreras 2
       Expr1000
                         5

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 1708:

SELECT *
FROM carreras
WHERE id_carrera <> ‘1708’;




En el siguiente ejemplo se muestran todas las carreras, menos civil, 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 <> ‘civil’;

El resultado es el siguiente:
Revisaremos distintas tipos de consultas sobre este 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

El resultado es el siguiente:




   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;

El resultado es el siguiente:
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 c, carreras c
WHERE    c.id_carrera = e.id_carrera
ORDER BY e.edad DESC;

El resultado es el siguiente:
iv.     El número de carreras que se encuentran registradas en la base de datos.

SELECT COUNT (*) as “Numero de carreras”
FROM carreras;

El resultado es el siguiente:

     Consulta1
"Numero de carreras"
                     5

   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;

El resultado es el siguiente:




   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;

El resultado es el siguiente:




   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;

El resultado es el siguiente:
Probar cambiando el operador de comparación por: <>

SELECT          f.nombres,
                f.apellidos,
                f.rut_func,
                f.edad,
                f.direccion,
                f.salud
FROM            funcionarios f
WHERE           f.edad <> 35;

El resultado es el siguiente:
 Crear consultas adicionales:

Con SELECT, FROM y WHERE

   •   Obtener una nómina de estudiantes con rut, nombre, apellido, dirección y el código
       de la carrera a la cual pertenece, considerando solamente aquellos que no estudian
       comercial (código 1706) ni auditoría (código 1709). La consulta es la siguiente:

SELECT         e.nombres,
               e.apellidos,
               e.direccion,
               e.rut_est,
               e.id_carrera
FROM           estudiantes e
WHERE          e.id_carrera <>'1706'
AND            e.id_carrera <> '1709';

El resultado es el siguiente:




   •   Obtener una nómina de funcionarios, con nombre y apellido y salud, que
       pertenezcan a Fonasa solamente. La consulta es la siguiente:

SELECT        f.nombres,
               f.apellidos,
               f.salud
FROM          funcionarios f
WHERE         f.salud = 'fonasa';

El resultado es el siguiente:




   •   Obtener un listado de libros con código y título, cuyo año sea superior a 1900. La
       consulta es la siguiente:

SELECT         l.cod_libro,
               l.titulo,
l.agno
FROM           libros l
WHERE          l.agno > 1900;

El resultado es el siguiente:




Con ORDER BY

   •   Obtener el listado de estudiantes con sus nombres, apellidos, direcciones, fonos y
       edades, pero estas últimas en orden ascendente. Para ello generamos la consulta:

SELECT   e.nombres,
         e.apellidos,
         e.edad,
         e.fono,
         e.direccion,
         c.nombre
FROM     estudiantes c, carreras c
WHERE    c.id_carrera = e.id_carrera
ORDER BY e.edad ASC;

El resultado es el siguiente:
•   Obtener el listado de libros pertenecientes a todas las bibliotecas, indicando el
       código del libro, su título, y el año ordenado de forma descendente. La consulta es
       la siguiente:

SELECT   cod_libro,
         titulo,
         agno
FROM     libros
ORDER BY agno DESC;

El resultado es el siguiente:
•   Obtener el listado de autores indicando su rut, nombre y apellido, ordenados según
       su rut. La consulta es la siguiente:

SELECT   rut_autor,
         nombres,
         apellidos
FROM     autores
ORDER BY rut_autor;

El resultado es el siguiente:




Con GROUP BY

   •   Obtener el listado de cantidad de títulos por rut de cada autor. La consulta es la
       siguiente:

SELECT   count(titulo), rut_autor
FROM     libros
GROUP BY rut_autor;

El resultado es el siguiente:




   •   Obtener el listado de cantidad de títulos por tipo de libro. La consulta es la
       siguiente:

SELECT         count(titulo), id_tipo
FROM     libros
GROUP BY id_tipo

El resultado es el siguiente:




   •   Obtener un listado de la cantidad de estudiantes que tienen la misma edad. La
       consulta es la siguiente:

SELECT   e.edad, count (*)
FROM     estudiantes e
GROUP BY e.edad;

El resultado es el siguiente:




Con HAVING


   •   Obtener la cantidad de estudiantes por carrera, agrupados según el código de
       carrera, considerando sólo a aquellos que pertenecen a la carrera de auditoría
       (código 1709). La consulta es la siguiente:

SELECT   e.id_carrera, count (*)
FROM     estudiantes e
GROUP BY id_carrera
HAVING         id_carrera ='1709';

El resultado es el siguiente:




   •   Obtener el mismo listado de la cantidad de estudiantes que tienen la misma edad,
       pero ahora considerando sólo a aquellos que son mayores a 21 años. La consulta es
       la siguiente:

SELECT         e.edad, count (*)
FROM           estudiantes e
GROUP BY       e.edad
HAVING         e.edad > 21;

El resultado es el siguiente:




   •   Obtener el mismo listado de cantidad de títulos por tipo de libro, pero ahora
       considerando sólo aquellos que no son científicos (id 4000) ni recreativos (id 3000).
       La consulta es la siguiente:

SELECT         count(titulo), id_tipo
FROM           libros
GROUP BY       id_tipo
HAVING         id_tipo <> ‘4000’
AND            id_tipo <> ‘3000’;

El resultado es el siguiente:

Más contenido relacionado

PDF
Laboratorio
PDF
Consultas en oracle
DOCX
Ejercicios de-access-esae
DOC
Porafolio estadística 2
DOCX
Practica 2. access basico
PDF
(Yobana garcia 21303633)21301633 0460 01_ns_5704021
PPTX
La contaminacion
PPT
EL TRIVIAL DEL NOSTRE COS.ppt
Laboratorio
Consultas en oracle
Ejercicios de-access-esae
Porafolio estadística 2
Practica 2. access basico
(Yobana garcia 21303633)21301633 0460 01_ns_5704021
La contaminacion
EL TRIVIAL DEL NOSTRE COS.ppt

Similar a Primer Informe sistemas (20)

PDF
DOCX
Tarea nº 1 sistemas (1)
DOCX
Trabajo sistemas
PDF
Guia lab5
DOCX
Tarea nº 1 sistemas (1)
DOCX
Tarea nº 1 sistemas
DOCX
Laboratorio N°1 de Sistemas de Información
PDF
Laboratorio N° 1 SIA
PDF
Laboratorio sia cnavarro pvargas
DOCX
Laboratorio 1
DOC
Prueba Oracle
DOC
DOC
Lab 2
DOCX
Actividad 4 ayudantía
DOCX
Laboratorio 1
DOC
PDF
Consultas sql
PDF
Consultas-SQL.pdf
Tarea nº 1 sistemas (1)
Trabajo sistemas
Guia lab5
Tarea nº 1 sistemas (1)
Tarea nº 1 sistemas
Laboratorio N°1 de Sistemas de Información
Laboratorio N° 1 SIA
Laboratorio sia cnavarro pvargas
Laboratorio 1
Prueba Oracle
Lab 2
Actividad 4 ayudantía
Laboratorio 1
Consultas sql
Consultas-SQL.pdf
Publicidad

Primer Informe sistemas

  • 1. UNIVERSIDAD AUSTRAL DE CHILE FACULTAD DE CIENCIAS ECONÓMICAS Y ADMINISTRATIVAS INSTITUTO DE ADMINISTRACIÓN ADMI 273 Guía de consultas SQL Integrantes: Valeria Muñoz O. Makarena Ruiz H. Nadia Muñoz B. Profesor: Cristian Salazar C. Asignatura: Sistemas de Información Empresarial Valdivia, 16/04/2012
  • 2. Desarrollo Guía  Modelo de datos: Fuente: Microsoft Visio 2010. Elaboración propia.  Consultas: 1) Para obtener todos los registros contenidos en la tabla “CARRERAS” debemos ejecutar la siguiente consulta: SELECT * FROM carreras; El resultado es el siguiente: 2) 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
  • 3. columna (también se puede usar como argumento el *). Los siguientes ejemplos entregan el mismo resultado: SELECT COUNT (*) FROM carreras; cantidad de carreras Expr1000 5 SELECT COUNT (id_carrera) FROM carreras; cantidad de carreras 2 Expr1000 5 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 1708: SELECT * FROM carreras WHERE id_carrera <> ‘1708’; En el siguiente ejemplo se muestran todas las carreras, menos civil, 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 <> ‘civil’; El resultado es el siguiente:
  • 4. Revisaremos distintas tipos de consultas sobre este 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 El resultado es el siguiente: 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; El resultado es el siguiente:
  • 5. 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 c, carreras c WHERE c.id_carrera = e.id_carrera ORDER BY e.edad DESC; El resultado es el siguiente:
  • 6. iv. El número de carreras que se encuentran registradas en la base de datos. SELECT COUNT (*) as “Numero de carreras” FROM carreras; El resultado es el siguiente: Consulta1 "Numero de carreras" 5 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; El resultado es el siguiente: vi. A nuestra lista de estudiantes, agregaremos el nombre de la ciudad asociada al campus. SELECT e.nombres,
  • 7. 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; El resultado es el siguiente: 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; El resultado es el siguiente:
  • 8. Probar cambiando el operador de comparación por: <> SELECT f.nombres, f.apellidos, f.rut_func, f.edad, f.direccion, f.salud FROM funcionarios f WHERE f.edad <> 35; El resultado es el siguiente:
  • 9.  Crear consultas adicionales: Con SELECT, FROM y WHERE • Obtener una nómina de estudiantes con rut, nombre, apellido, dirección y el código de la carrera a la cual pertenece, considerando solamente aquellos que no estudian comercial (código 1706) ni auditoría (código 1709). La consulta es la siguiente: SELECT e.nombres, e.apellidos, e.direccion, e.rut_est, e.id_carrera FROM estudiantes e WHERE e.id_carrera <>'1706' AND e.id_carrera <> '1709'; El resultado es el siguiente: • Obtener una nómina de funcionarios, con nombre y apellido y salud, que pertenezcan a Fonasa solamente. La consulta es la siguiente: SELECT f.nombres, f.apellidos, f.salud FROM funcionarios f WHERE f.salud = 'fonasa'; El resultado es el siguiente: • Obtener un listado de libros con código y título, cuyo año sea superior a 1900. La consulta es la siguiente: SELECT l.cod_libro, l.titulo,
  • 10. l.agno FROM libros l WHERE l.agno > 1900; El resultado es el siguiente: Con ORDER BY • Obtener el listado de estudiantes con sus nombres, apellidos, direcciones, fonos y edades, pero estas últimas en orden ascendente. Para ello generamos la consulta: SELECT e.nombres, e.apellidos, e.edad, e.fono, e.direccion, c.nombre FROM estudiantes c, carreras c WHERE c.id_carrera = e.id_carrera ORDER BY e.edad ASC; El resultado es el siguiente:
  • 11. Obtener el listado de libros pertenecientes a todas las bibliotecas, indicando el código del libro, su título, y el año ordenado de forma descendente. La consulta es la siguiente: SELECT cod_libro, titulo, agno FROM libros ORDER BY agno DESC; El resultado es el siguiente:
  • 12. Obtener el listado de autores indicando su rut, nombre y apellido, ordenados según su rut. La consulta es la siguiente: SELECT rut_autor, nombres, apellidos FROM autores ORDER BY rut_autor; El resultado es el siguiente: Con GROUP BY • Obtener el listado de cantidad de títulos por rut de cada autor. La consulta es la siguiente: SELECT count(titulo), rut_autor FROM libros GROUP BY rut_autor; El resultado es el siguiente: • Obtener el listado de cantidad de títulos por tipo de libro. La consulta es la siguiente: SELECT count(titulo), id_tipo
  • 13. FROM libros GROUP BY id_tipo El resultado es el siguiente: • Obtener un listado de la cantidad de estudiantes que tienen la misma edad. La consulta es la siguiente: SELECT e.edad, count (*) FROM estudiantes e GROUP BY e.edad; El resultado es el siguiente: Con HAVING • Obtener la cantidad de estudiantes por carrera, agrupados según el código de carrera, considerando sólo a aquellos que pertenecen a la carrera de auditoría (código 1709). La consulta es la siguiente: SELECT e.id_carrera, count (*) FROM estudiantes e GROUP BY id_carrera
  • 14. HAVING id_carrera ='1709'; El resultado es el siguiente: • Obtener el mismo listado de la cantidad de estudiantes que tienen la misma edad, pero ahora considerando sólo a aquellos que son mayores a 21 años. La consulta es la siguiente: SELECT e.edad, count (*) FROM estudiantes e GROUP BY e.edad HAVING e.edad > 21; El resultado es el siguiente: • Obtener el mismo listado de cantidad de títulos por tipo de libro, pero ahora considerando sólo aquellos que no son científicos (id 4000) ni recreativos (id 3000). La consulta es la siguiente: SELECT count(titulo), id_tipo FROM libros GROUP BY id_tipo HAVING id_tipo <> ‘4000’ AND id_tipo <> ‘3000’; El resultado es el siguiente: