Bases de datos en la enseñanza

6 / Iniciación al lenguaje estructurado de consultas (SQL)

Obtener información de varias tablas

De igual modo que existe la posibilidad en la vista Diseño de vincular dos o más tablas para obtener resultados combinados, SQL también dispone de las herramientas necesarias para realizar este tipo de tareas. El proceso es sin duda más complicado que lo visto con el diseñador de consultas, pero a cambio tendrás mucho más control sobre todo el proceso.

SQL propone un método para identificar la tabla asociada a cada uno de los campos cuando trabajas con varias tablas. La sintaxis consiste en anteponer el nombre de la tabla al nombre del campo y separarlos por un punto:

NombreTabla.NombreCampo

Antes de ver el primer ejemplo, revisa los tipos de relación que se podían definir entre las tablas.

Por supuesto, en SQL también existe la posibilidad de reproducir cada uno de estos tipos de unión pero en estos momentos no es necesario añadir este nivel de complejidad al curso, así que utiliza la fórmula más sencilla, la vinculación de tablas mediante la cláusula WHERE. Este método equivale a seleccionar aquellos registros donde ambas tablas tengan coincidencia que, por otra parte, es la situación más común cuando trabajes con bases de datos.

En nuestro primer ejemplo, utilizaremos las tablas Alumnos y Cursos para representar en una consulta el grupo al que pertenece cada uno de los alumnos que forman nuestra base de datos.

  1. Selecciona la opción Crear consulta en vista SQL y empieza escribiendo: SELECT.
  2. A continuación indica los campos de la tabla que deseas mostrar en la consulta, pero recuerda que ahora debes anteponer el nombre de la tabla. Incluye los campos Nombre y Apellidos de la tabla Alumnos.
  3. De la tabla Cursos utiliza sólo el campo “Curso”.
  4. Ahora añade la cláusula FROM y escribe el nombre de las dos tablas implicadas: Alumnos y Cursos.
    1. Esta es la parte más delicada de la consulta, donde debes vincular los campos de ambas tablas que permitirán obtener los resultados correctos. En este caso es necesario relacionar el campo Grupo de la tabla Alumnos con el campo IdCurso de la tabla Curso. Escribe en primer lugar la cláusula WHERE y después Alumnos.Grupo=Cursos.IdCurso.
    2. La instrucción SQL queda del siguiente modo:
      SELECT Alumnos.Nombre, Alumnos.Apellidos, Cursos.Curso FROM Alumnos, Cursos WHERE Alumnos.Grupo=Cursos.IdCurso
    3. Por ahora es suficiente, ejecuta la consulta. En la figura 6.12 puedes ver su aspecto y el resultado obtenido.
    Vinculación de varias tablas con SQL

    Figura 6.12

    Actividad 8

    Pero puedes depurar un poco más el ejemplo. ¿Qué tal si ordenas el resultado alfabéticamente por los apellidos del alumno? La figura 6.13 muestra el resultado de la nueva consulta. Una vez terminada, guarda esta consulta con el nombre de Actividad8.

    Otro ejemplo de vinculación de varias tablas

    Figura 6.13

    Actividad 9

    También puedes añadir una condición a la consulta anterior. Por ejemplo, muestra únicamente los alumnos de 1B. Para ello, debes añadir una nueva condición a la cláusula WHERE, antes de ORDER BY y enlazarla mediante el operador AND. El resultado que obtengas debe ser similar al que muestra la figura 6.14. Una vez terminada, guarda esta consulta con el nombre de Actividad9.

    Consulta compleja con relaciones, criterios y ordenación

    Figura 6.14

    Recuerda que el criterio “1B" al tratarse de un literal es necesario encerrarlo entre comillas simples, si no lo haces así el intérprete SQL de OpenOffice Base generará un error de sintaxis.

    Actividad 10

    Ahora riza un poco más el rizo, y modifica la consulta diseñada en la actividad 9, para que muestre los alumnos que pertenezcan a 1A o a 1B, pero esta vez los ordenarás primero por el grupo y a continuación por el apellido. La forma de conseguirlo es utilizar un nuevo criterio enlazado con el anterior mediante el operador OR ya que quieres mostrar cualquiera de las dos opciones. Observa el resultado en la figura 6.15. Guarda esta consulta con el nombre de Actividad10 y la base de datos completa como mibase6.odb.

    Consulta compleja con relaciones, criterios y ordenación

    Figura 6.15

    Quizás te parezcan un poco complicadas las últimas actividades, pero analízalas con atención y comprobarás que todas siguen una pauta lógica y a medida que adquieras más destreza, las entenderás sin mayor problemas.