Bases de datos en la enseñanza

4 / Consultas

Crear consultas más complejas

Ya sabes cómo realizar consultas sencillas, filtrar y ordenar los datos obtenidos, y por supuesto, moverte por el entorno de consultas de OpenOffice Base. Ahora es el momento de seguir avanzando y conocer la forma de diseñar consultas más complejas.

Consultas con criterios, operadores Y y O

Las consultas con varios criterios van a permitir seleccionar de forma precisa los registros que necesitas en cada momento. En este sentido es importante diferenciar claramente entre los operadores lógicos más importantes Y (AND) y O (OR).

Uso del operador Y (AND) en consultas de criterios

El operador Y obliga a que se cumplan TODOS los criterios para seleccionar un registro. Por ejemplo, si deseas conocer cuántos encuentros tienen lugar en una fecha concreta y en una de las pistas disponibles de nuestro centro deberías diseñar la siguiente consulta:

Actividad 11

  1. 1. Crea una nueva consulta, y para ello selecciona Crear consulta en la vista Diseño. En este caso utiliza la tabla Calendario de la base de datos que venimos usando habitualmente.
  2. Arrastra los campos Jornada, Fecha, Hora y Lugar. En principio, estos datos serán suficientes para entender el significado del operador Y.
  3. En la línea Criterio del campo Fecha escribe 12/02/07. Al salir del campo, OpenOffice Base corrige la entrada y añade automáticamente una almohadilla al principio y al final de la fecha, ya que esta es la forma correcta de introducir una fecha en un campo de criterio.
  4. Ahora, en la línea Criterio del campo Lugar escribe Pista 1. En este caso, OpenOffice Base también corrige la entrada y añade comillas simples al principio y al final. De nuevo, el programa indica de esta forma la sintaxis necesaria para incluir un campo de texto en un criterio.
  5. Si ejecutas ahora la consulta, recuerda pulsar la tecla F5. El resultado serán todos aquellos registros que cumplan las dos condiciones AL MISMO TIEMPO como puedes comprobar en la figura 4.41. Es decir, que la fecha sea el 12/2/07 y que el lugar del encuentro corresponda con la pista 1. En cualquier otro caso no se mostrará el registro.
Uso de operador Y

Figura 4.41

En el diseño de consulta, los criterios que se encuentren en la misma línea se interpretan como condición Y (AND). Por lo tanto, se tendrán que cumplir todas las condiciones para que el registro se muestre en el resultado de la consulta.

A continuación, un ejemplo de otra situación habitual en el uso de este operador: utilizar el mismo campo para el criterio Y (AND). Busca los alumnos que hayan nacido en 1992.

Actividad 12

  1. Crea una nueva consulta, y esta vez utiliza la tabla Alumnos.
  2. Arrastra todos los campos hasta el área de diseño de la ventana de consulta.

Un truco para colocar campos en la consulta más rápidamente es hacer doble clic sobre el nombre del campo y automáticamente se colocará en la siguiente columna libre.

  1. Ahora en la línea Criterio del campo FechaNacimiento escribe la siguiente expresión: >= #01/01/1992# Y <= #31/12/1992#.
  2. Ejecuta la consulta para comprobar los resultados.

En este caso, el operador Y obliga a que sólo se muestren los registros cuya fecha esté comprendida entre las dos indicadas. La diferencia es que esta vez usas un único campo para componer la condición como muestra la figura 4.42.

Uso del operador Y en un mismo campo

Figura 4.42

Uso del operador O (OR) en consultas de criterios

Las condiciones compuestas mediante el operador O (OR) son menos restrictivas y es suficiente con que se cumpla una de las condiciones para añadir el registro al resultado de la consulta.

Utilizaremos ahora la tabla Tutorías para ver un sencillo ejemplo donde se ilustra el modo de funcionamiento del operador O (OR). La idea es buscar todos los datos relacionados con las tutorías que tengan lugar en lunes o jueves.

En principio, en los campos Profesor y Grupo aparece el identificador de cada elemento en lugar de los valores del mismo, sin lugar a dudas, con esto conseguiríamos que el resultado fuera mucho más legible. La solución a este problema la trataremos un poco más adelante, cuando aprendamos a relacionar información de varias tablas.

Actividad 13

  1. Abre la base de datos si es que no la tienes abierta y crea una nueva consulta. En este caso utiliza la tabla Tutorías de la base de datos.
  2. Añade todos los campos de la tabla. Recuerda que basta con hacer doble clic sobre el nombre del campo para añadirlo a la siguiente columna vacía de la rejilla de diseño.
  3. A continuación, en la línea Criterio del campo DiaSemana escribe Lunes (sin comillas, de esto ya se encarga OpenOffice Base).
  4. Bajo la casilla anterior, justo en la primera línea o escribe Jueves. Después de este paso el aspecto de la consulta debe ser similar al que muestra la figura 4.43.
  5. Haz clic en F5 para mostrar el resultado y revísalo durante unos instantes. Comprueba que aparecen todos los registros que contienen alguno de los dos valores del criterio.
Uso del operador O

Figura 4.43

Como puedes comprobar, aparecen registros que tienen alguno de los dos valores que has indicado, es decir, basta con cumplir una de las condiciones para añadir el registro a los resultados.

Cuando utilices el operador O (OR) sobre más de un campo, las condiciones deben estar en filas distintas. Si se encuentran en la misma fila se interpretan como condiciones Y (AND).

Combinación de operadores lógicos Y y O

Ni mucho menos es obligatorio utilizar los operadores Y y O de forma individual. OpenOffice Base permite combinarlos para ajustar el diseño de la consulta a cada necesidad.

Para nuestra siguiente actividad seleccionaremos todos los alumnos nacidos en 1992 y que se llamen David o Mario. El diseño de esta consulta sería el siguiente:

Actividad 14

  1. Crea una nueva consulta y añade la tabla Alumnos.
  2. A continuación, incluye todos los campos de la tabla en la rejilla de diseño.
  3. En la primera línea de criterio del campo Nombre escribe “José”. También en esta primera línea pero bajo el campo FechaNacimiento escribe la siguiente expresión: “>= #01/01/1992# Y <= #31/12/1992#”.
  4. Ahora, en la segunda línea del campo Nombre escribe: “Juan” y en la misma línea del campo FechaNacimiento repite la expresión anterior, es decir: “>= #01/01/1992# Y <= #31/12/1992#”.
  5. El diseño de la consulta debe ser similar al que puedes ver en la figura 4.44.

La lectura de la consulta sería algo así como: Selecciona todos los registros de la tabla Alumnos cuyo nombre sea David Y hayan nacido en 1992, O su nombre sea Mario Y hayan nacido en 1992. De nuevo comprueba en la figura 4.44 que los criterios situados en la misma línea corresponden a condiciones obligatorias del operador Y. Mientras que los situados en la misma columna corresponden con criterios O que obligan a cumplir al menos una de las condiciones.

Combinación del operador Y del operador O

Figura 4.44