🙏 Realmente necesitamos su apoyo. Necesitamos financiamiento para continuar nuestra misión: publicar nuevas lecciones y mejorar la plataforma. Si puede, por favor apoye el proyecto con una donación. Ayude al proyecto ahora →
Código SQL copiado al portapapeles

Lección 2.2 Filtrado de Datos con la Cláusula WHERE

La instrucción SELECT por sí sola devuelve todas las filas de una tabla. Sin embargo, en escenarios del mundo real, generalmente solo necesitas un subconjunto de datos que cumpla con criterios específicos. Aquí es donde entra la cláusula WHERE.

¿Qué es la Cláusula WHERE?

La cláusula WHERE se utiliza para filtrar registros. Asegura que solo aquellas filas que satisfacen una condición específica se incluyan en el conjunto de resultados.

Sintaxis Básica

SELECT column1, column2, ...
FROM table_name
WHERE condition;

La condición es una expresión que evalúa a verdadero, falso o desconocido (si hay valores NULL involucrados). Solo se devuelven las filas donde la condición evalúa a verdadero.


Operadores de Comparación

SQL proporciona una variedad de operadores para comparar valores en la cláusula WHERE:

OperadorDescripciónEjemplo
=Igual aWHERE last_name = 'SMITH'
<> o !=No igual aWHERE store_id <> 1
>Mayor queWHERE rental_rate > 2.99
<Menor queWHERE length < 60
>=Mayor o igual queWHERE replacement_cost >= 20.00
<=Menor o igual queWHERE amount <= 5.00

Ejemplo (Base de Datos Sakila)

Para encontrar películas con una tarifa de alquiler de $4.99 de la tabla film:

SELECT title, rental_rate, replacement_cost
FROM film
WHERE rental_rate = 4.99;

Operadores de Filtrado Especiales

SQL incluye potentes operadores para rango, conjunto y coincidencia de patrones.

1. BETWEEN

Filtra valores dentro de un cierto rango (inclusive).

-- Encontrar pagos entre $5.00 y $10.00
SELECT payment_id, amount, payment_date
FROM payment
WHERE amount BETWEEN 5.00 AND 10.00;

2. IN

Coincide con cualquier valor en una lista especificada.

-- Encontrar clientes de tiendas específicas
SELECT first_name, last_name, store_id
FROM customer
WHERE store_id IN (1, 2);

3. LIKE

Busca un patrón especificado en una columna utilizando comodines:

  • % representa cero, uno o múltiples caracteres.
  • _ representa un solo carácter.

Ejemplo (Base de Datos Sakila)

-- Encontrar películas que comienzan con 'A'
SELECT title
FROM film
WHERE title LIKE 'A%';

-- Encontrar películas donde la segunda letra es 'I'
SELECT title
FROM film
WHERE title LIKE '_I%';

La Trampa: Filtrando valores NULL

Como aprendimos en la lección sobre NULLs, no puedes usar = o <> para verificar NULL. Debes usar IS NULL o IS NOT NULL.

Ejemplo (Base de Datos Sakila)

-- Incorrecto
-- WHERE return_date = NULL

-- Correcto
SELECT rental_id, rental_date, return_date
FROM rental
WHERE return_date IS NULL;

Puntos Clave de esta Lección:

  • La cláusula WHERE filtra filas antes de que se devuelvan al conjunto de resultados.
  • Los valores de cadena y fecha deben estar entre comillas simples (por ejemplo, 'SMITH').
  • Los valores numéricos no requieren comillas.
  • Usa LIKE para coincidencia de patrones y IN para coincidencias contra listas.
  • Nunca uses = con NULL; siempre usa IS NULL.

En la próxima lección, exploraremos cómo Combinar Múltiples Condiciones para crear filtros aún más potentes.