Filtrar registros, cláusula WHERE
Como ya sabes una de las funciones principales de una consulta es seleccionar sólo aquellos registros de la tabla o tablas seleccionadas que necesites en cada caso. Pues bien, si quieres hacerlo mediante sentencias SQL es imprescindible añadir la cláusula WHERE al comando SELECT.
Por ejemplo, a continuación mostramos cómo diseñar la consulta SQL que nos permitiría seleccionar aquellos alumnos cuya fecha de nacimiento sea menor que el 31 de Diciembre de 1992.
- Selecciona la opción Crear consulta en vista SQL.
- Empieza escribiendo: SELECT.
- A continuación debes indicar los campos de la tabla que deseas mostrar en la consulta. En este caso utiliza el nombre, los apellidos y la fecha de nacimiento.
- La siguiente palabra reservada de la instrucción es “FROM”. Escríbela a continuación, dejando un espacio en blanco entre el elemento anterior.
- Ahora indica el nombre de la tabla desde la que obtendrás la información, en este caso “Alumnos”.
- Después, añade la cláusula WHERE para indicar la condición de filtrado.
-
-
El criterio sería el siguiente: FechaNacimiento <= '1992-12-31'. El formato es distinto al que conoces hasta ahora pero es la sintaxis que acepta el intérprete de SQL para las fechas.
- Por lo tanto, después de estos pasos la sentencia SQL quedaría de la siguiente forma:
SELECT Nombre, Apellidos, FechaNacimiento FROM Alumnos WHERE FechaNacimiento <= '1992-12-31' - Ejecuta la consulta para comprobar los resultados (figura 6.05).

Figura 6.05
Actividad 2
Diseña una consulta SQL que permita seleccionar el nombre y apellidos de los profesores que vivan en la provincia de Badajoz.
Operadores lógicos
Los operadores lógicos que puedes utilizar en sentencias SQL son los mismos que ya conoces:
Operador |
Se lee |
Resultado |
= |
Igual a |
Devuelve los registros que coinciden con la condición. |
< |
Menor que |
Muestra aquellos registros cuyos valores son estrictamente menores que la condición. |
> |
Mayor que |
Muestra aquellos registros cuyos valores son estrictamente mayores que la condición. |
<= |
Menor o igual que |
Devuelve los registros cuyos valores son menores o iguales a la condición. |
>= |
Mayor o igual que |
Devuelve los registros cuyos valores son mayores o iguales a la condición. |
<> |
Distinto de |
Sólo muestra aquellos registros que tienen valores distintos a la condición. |
Condiciones Y (AND) y O (OR) en la cláusula WHERE
Al igual que ocurre con las consultas en el modo Diseño, mediante sentencias SQL también podemos utilizar los operadores Y (AND) y O (OR) y por supuesto, no se ve alterada su lógica de funcionamiento.
Veamos en primer lugar un ejemplo práctico donde se utiliza el operador OR. Concretamente, diseñaremos una consulta SQL que nos permita conocer las tutorías que tienen lugar los Martes o los Jueves.
Actividad 3
- Selecciona la opción Crear consulta en vista SQL y empieza escribiendo: SELECT.
- A continuación debes indicar los campos de la tabla que deseas mostrar en la consulta. En este caso utiliza Profesor, Curso, DiaSemana y HoraTutoria.
- La siguiente palabra reservada de la instrucción es “FROM”. Escríbela a continuación, dejando un espacio en blanco entre el elemento anterior.
- Ahora indica el nombre de la tabla desde la que obtendrás la información, en este caso Tutorias.
- Después añade la cláusula WHERE para indicar la primera condición de filtrado.
- El criterio sería el siguiente: DiaSemana = ‘Martes’. No olvides las comillas simples para encerrar el literal de la condición de búsqueda.
- Ahora escribe el operador lógico OR y deja un espacio.
- A continuación indica la segunda condición: DiaSemana = ‘Jueves’.
-
-
Por lo tanto, después de estos pasos la sentencia SQL quedaría de la siguiente forma:
SELECT Profesor, Curso, DiaSemana, HoraTutoria FROM Tutorias WHERE DiaSemana = 'Martes' OR DiaSemana = 'Jueves' - Comprueba los resultados ejecutando la consulta. En la figura 6.06 puedes ver el aspecto de la sentencia junto con los resultados obtenidos.

Figura 6.06
Quizás todos estos pasos te puedan parecer un poco complejos al principio pero si prestas un poco de atención comprobarás que incluso se pueden leer: SELECCIONA LOS CAMPOS PROFESOR CURSO, DIASEMANA Y HORATUTORIA DE LA TABLA TUTORIAS DONDE EL DIA DE LA SEMANA ES MARTES O JUEVES.
Ahora realiza otro ejemplo, pero esta vez con el operador AND. La idea es diseñar una consulta que permita conocer los encuentros que se disputarán entre dos fechas concretas.
Actividad 4
- Selecciona la opción Crear consulta en vista SQL y empieza escribiendo: SELECT.
- A continuación indica los campos de la tabla que deseas mostrar en la consulta. En este caso utiliza Jornada, Lugar, Fecha, EquipoA y EquipoB.
- Escribe “FROM”, dejando un espacio en blanco entre el elemento anterior y el siguiente.
- Ahora indica el nombre de la tabla desde la que obtendrás la información, en este caso “Calendario”.
- Después añade la cláusula WHERE para indicar la primera condición de filtrado.
-
-
El criterio sería el siguiente: Fecha >= '2007-02-01'. Evidentemente te parecerá un poco extraño el formato utilizado para las fechas, pero es así como lo entiende el intérprete de SQL de OpenOffice Base.
- Ahora escribe el operador lógico AND y deja un espacio.
- A continuación indica la segunda condición: Fecha <= '2007-02-19'.
- Después de estos pasos la sentencia SQL quedaría de la siguiente forma:
SELECT Jornada, Fecha, Lugar, EquipoA, EquipoB FROM Calendario WHERE Fecha >= '2007-02-01' AND Fecha <= '2007-02-19'
- Ejecuta la consulta. De nuevo, puedes ver en la figura 6.07 el resultado de la consulta.
Como has podido comprobar el interprete SQL de OpenOffice Base tampoco utilizas las almohadillas para representar las fechas, como hacías en las consultas. En este caso, siempre debes usar comillas simples, separar con un guión el año, mes y día y escribirlo en este orden. Estas instrucciones son imprescindibles a la hora incluir fechas en tus sentencias SQL, y teniendo en cuenta que es algo distinto de lo que conocemos, nuestra recomendación es que practiques un poco con todo lo visto hasta ahora.

Figura 6.07
Hay que insistir en la importancia de las comillas simples a la hora de expresar las fechas en una consulta de criterios. Por este motivo para que no tengas ninguna duda en la figura 6.08 puedes ver la tecla concreta a la que hacemos referencia.

Figura 6.08
Una vez diseñada la consulta y comprobados sus resultados utiliza el botón Guardar para dar un nombre y archivar la consulta en la base de datos.
Con el objetivo de abarcar todas las posibilidades, veamos a continuación como sería el diseño de una consulta donde se combinen al mismo tiempo operadores AND y OR. Concretamente, el objetivo es conocer los encuentros que se juegan el día 12/02/2007 o el 14/02/2007 pero sólo en la Pista 1.
Actividad 5
- Selecciona la opción Crear consulta en vista SQL y empieza escribiendo: SELECT.
- A continuación indica los campos de la tabla que deseas mostrar en la consulta. En este caso utiliza Jornada, Lugar, Fecha, EquipoA y EquipoB.
- Escribe “FROM”, dejando un espacio en blanco entre el elemento anterior y el siguiente.
- Ahora indica el nombre de la tabla desde la que obtendrás la información, en este caso “Calendario”.
- Después añade la cláusula WHERE para indicar la primera condición de filtrado.
- El criterio sería el siguiente: Fecha = '2007-02-12'.
- Ahora escribe el operador lógico AND y deja un espacio.
- A continuación escribe Lugar = ‘Pista 1’. De esta forma compones el primer criterio.
- Deja un espacio, escribe OR y deja otro espacio.
- El criterio siguiente sería: Fecha = '2007-02-14'.
- Ahora escribe el operador lógico AND y deja un espacio.
- A continuación escribe Lugar = ‘Pista 1’. De esta forma compones el segundo criterio.
- Después de estos pasos la sentencia SQL quedaría de la siguiente forma. Revisa con cuidado todo lo escrito y no olvides incluir los paréntesis tal y como puedes ver a continuación:
SELECT Jornada, Fecha, Lugar, EquipoA, EquipoB FROM Calendario WHERE ((Fecha = '2007-02-12' AND Lugar = 'Pista 1') OR (Fecha = '2007-02-14' AND Lugar = 'Pista 1'))
- Comprueba los resultados ejecutando la consulta y observa la figura 6.09.

Figura 6.09
Cuando anidas varios criterios de filtrado es imprescindible utilizar los paréntesis para agrupar cada uno de los bloques que conforman la consulta a partir de la cláusula WHERE.