Volver a la lista de artículos Artículos
Lectura de 6 minutos

¿Qué es la cláusula WHERE de SQL?

La cláusula WHERE es una parte fundamental de SQL. Esta cláusula filtra los resultados y aplica condiciones a las consultas SQL. Se suele utilizar junto con la sentencia SELECT. Si eres un completo novato en este tema, puedes aprender los fundamentos de SQL, incluyendo WHERE, en nuestro curso SQL para principiantes

Este artículo le explicará claramente cómo utilizar WHERE en una consulta SQL. Después de leerlo, tendrás la confianza y el conocimiento para integrar WHERE en tu trabajo diario.

Sintaxis de la cláusula WHERE de SQL

La sintaxis de la cláusula WHERE de SQL es sencilla de entender. Debe venir después de la palabra clave FROM en su consulta SQL:

SELECT *
FROM table
WHERE id = 100

En este ejemplo, hay una columna entera llamada id. Estamos seleccionando todas las filas donde el valor de la columna id es igual a 100.

Ejemplos de Cláusulas SQL WHERE

Una de las mejores maneras de aprender SQL es usándolo, así que vamos a trabajar con diferentes ejemplos de uso de la cláusula WHERE. Podrá observar lo útil que es para situaciones del mundo real.

Imagínese que tenemos un gimnasio. Cuando las personas se inscriben como miembros del gimnasio, nos dan cierta información básica. Esta información se almacena en nuestra tabla members que contiene un identificador único para cada socio, su nombre y apellidos, su edad y la fecha en que se inscribió en el gimnasio.

idFirstNameLastNameAgeDateJoined
1WillSmith522020-08-23
2BradPitt562018-06-15
3TomHanks642017-02-27
4AngelinaJolie452019-04-02
5MerylStreep712014-03-21

Si eres completamente nuevo en SQL o si necesitas refrescar tus conocimientos sobre la sentencia SELECT, tómate un momento para leer este artículo. SELECT aparecerá a lo largo de este artículo, por lo que es importante que lo entiendas.

Uso de WHERE con números

Si queremos recuperar los detalles de uno de nuestros miembros y conocemos su id único, podríamos escribir una consulta como esta:

SELECT * 
FROM members 
WHERE id = 3

Esto recuperaría todos los datos de este miembro, Tom Hanks:

idFirstNameLastNameAgeDateJoined
3TomHanks642017-02-27

Uso de WHERE con texto

El ejemplo anterior utilizó WHERE junto con un valor numérico de nuestra columna id. Sin embargo, puede utilizar WHERE con muchos tipos de datos diferentes. Veamos un ejemplo en el que se utiliza la cláusula WHERE con un valor de texto. En este caso, buscaremos en nuestras columnas VARCHAR, FirstName y LastName.

SELECT * 
FROM members 
WHERE FirstName = 'Tom' AND LastName = 'Hanks'

Fíjese en que los valores de texto que queremos que coincidan están rodeados de comillas simples. Debe hacer esto cada vez que incluya un valor de texto en su consulta. La ejecución de esta consulta devuelve los siguientes datos:

idFirstNameLastNameAgeDateJoined
3TomHanks642017-02-27

¡Fantástico! Este es exactamente el resultado que queríamos.

Vuelve a mirar la consulta. ¿Se ha fijado en el operador AND? La cláusula WHERE suele combinarse con el uso de tres operadores SQL diferentes: AND, OR y NOT:

  • Una cláusula WHERE con AND requiere que ambas condiciones sean verdaderas.
  • Una cláusula WHERE con OR requiere que cualquiera de las condiciones sea verdadera.
  • Una cláusula WHERE con NOT requiere que la condición especificada no sea verdadera.

Pruebe usted mismo estos operadores modificando la consulta utilizada anteriormente. Observa el efecto que tiene en los datos que se devuelven. La mejor manera de entender completamente estos operadores es leer tutoriales dedicados a los m y practicar la escritura de consultas que incluyan los operadores AND, OR y NOT. Aquí hay más formas útiles de practicar SQL en línea.

Uso de WHERE para obtener un rango de valores

Nuestro siguiente ejemplo se centrará en el uso de operadores de comparación (<,>,>=,<=,!=) junto con el operador AND de SQL que acabamos de ver. Imaginemos que queremos dirigirnos a todas las personas de 50 años con una oferta promocional. ¿Cómo vamos a aislar a los miembros con un valor de Edad entre 50 y 59? Observe la siguiente consulta SQL:

SELECT * 
FROM members 
WHERE Age >= 50 AND Age < 60

Preste especial atención a la sintaxis que sigue a la palabra clave WHERE.

Esta consulta SQL, traducida al inglés sencillo, dice simplemente: "Select all from members where age is greater or equal to 50 and age is less than 60". Al ejecutarla se obtiene este resultado:

idFirstNameLastNameAgeDateJoined
1WillSmith522020-08-23
2BradPitt562018-06-15

¡Ahí lo tenemos! Todos los miembros que tienen más de 50 años han sido devueltos. Ahora podemos dirigirnos a estos afiliados con nuestra próxima oferta especial.

Éstas son sólo algunas de las formas en que puede utilizar la cláusula SQL WHERE para ayudarle a acotar sus consultas. Una de las cosas más importantes en SQL es tener la capacidad de filtrar a través de grandes cantidades de datos; la cláusula WHERE le ayuda a lograr esto.

Uso de WHERE con UPDATE

La cláusula WHERE también puede combinarse con las sentencias UPDATE y DELETE. UPDATE se utiliza para modificar registros existentes en la base de datos. La sentencia DELETE se utiliza para eliminar completamente un registro de la base de datos.

Entonces, ¿cómo funciona realmente el uso de UPDATE junto con la cláusula WHERE? Imagine que Angelina Jolie, miembro del gimnasio, se ha casado recientemente y ha adoptado el apellido de su marido. Tenemos que actualizar su apellido en nuestra base de datos. Para ello, hay que buscar el id de Angelina Jolie y utilizarlo en la consulta:

UPDATE members SET LastName = 'Clooney' WHERE id = 4

La columna que quieres actualizar sigue a la palabra clave SET. Es muy importante que incluyas la cláusula WHERE cuando utilices la sentencia UPDATE; si no lo haces, se establecerá el LastName a 'Clooney' para todos los registros de la tabla.

Ahora veamos el efecto que esta consulta ha tenido en nuestro conjunto de datos ejecutando la siguiente consulta:

SELECT id, FirstName, LastName 
FROM members 
WHERE id = 4
idFirstNameLastName
4AngelinaClooney

¡Éxito! Como puede ver, los datos se han actualizado correctamente. UPDATE es una potente herramienta que le permite actualizar cualquier valor incorrecto en su conjunto de datos.

Uso de WHERE con DELETE

¿Qué pasa si queremos eliminar un registro de nuestra tabla de base de datos por completo? El uso de WHERE en combinación con la sentencia DELETE lo hace posible. La sintaxis de DELETE es sencilla y, aplicada a nuestro ejemplo, tiene el siguiente aspecto:

DELETE FROM members 
WHERE id = 4

Utilizamos nuestra cláusula WHERE para especificar exactamente qué registro queremos eliminar. Es importante tener en cuenta que si varios registros tienen el mismo valor id (en este caso, 4), todos esos registros se eliminarán de la tabla.

Tenga mucho cuidado al usar la sentencia DELETE; es una buena idea siempre SELECT los registros primero, para saber exactamente lo que está eliminando.

Podemos ver el efecto de nuestra sentencia DELETE seleccionando todos nuestros registros:

SELECT * 
FROM members 

La ejecución de esta consulta SQL arroja el siguiente conjunto de resultados:

idFirstNameLastNameAgeDateJoined
1WillSmith522020-08-23
2BradPitt562018-06-15
3TomHanks642017-02-27
5MerylStreep712014-03-21

Encontrar datos exactos con la cláusula WHERE de SQL

Ahora tiene la capacidad de encontrar e interactuar con los datos exactos que desea. WHERE es una herramienta extremadamente poderosa en su arsenal. Puede utilizar esta cláusula junto con UPDATE, DELETE, y SELECT. Esto le permite manipular y presentar los datos de innumerables maneras - ¡las posibilidades son infinitas!

Si quiere seguir aprendiendo SQL utilizando un recurso eficaz y probado, considere nuestro curso SQL para principiantes , que le dotará de un conocimiento fundamental de SQL.