QuieroProgramar por Rodri Gonzalez
SQL · Lección 02 de 15

SELECT, FROM y WHERE en profundidad

WHERE es donde ocurre la magia del filtrado. En esta lección dominás todas las formas de filtrar datos: rangos, listas, patrones de texto, valores nulos y combinaciones lógicas.

80–100 min Prerrequisitos: SQL 01
01

Concepto teórico

Anatomía completa del SELECT

SELECT columnas          -- qué querés ver
FROM tabla               -- de dónde
WHERE condiciones        -- filtro de filas
ORDER BY columna         -- orden (próxima lección)
LIMIT n;                 -- cantidad máxima

El orden de las cláusulas es fijo. No podés poner WHERE antes de FROM ni LIMIT antes de ORDER BY. SQL exige este orden exacto.

Operadores de comparación en WHERE

Operador Significado Ejemplo
= Igual a WHERE ciudad = 'Buenos Aires'
!= o <> Distinto de WHERE estado <> 'inactivo'
> >= < <= Mayor, menor WHERE score >= 650
BETWEEN a AND b Rango inclusivo WHERE score BETWEEN 600 AND 800
IN (v1, v2, ...) Pertenece a lista WHERE ciudad IN ('BsAs', 'Córdoba')
LIKE 'patrón' Coincide con patrón WHERE nombre LIKE 'Gar%'
IS NULL Es nulo WHERE email IS NULL
IS NOT NULL No es nulo WHERE email IS NOT NULL
NOT Niega condición WHERE NOT activo = 1

BETWEEN — rangos inclusivos

BETWEEN a AND b equivale a columna >= a AND columna <= b. Incluye ambos extremos. Es más legible para rangos:

-- Score entre 600 y 800 (inclusive)
WHERE score BETWEEN 600 AND 800
-- Equivale a: WHERE score >= 600 AND score <= 800

IN — lista de valores

IN (v1, v2, v3) reemplaza múltiples condiciones OR. Es mucho más limpio:

-- En vez de:
WHERE ciudad = 'BsAs' OR ciudad = 'Córdoba' OR ciudad = 'Rosario'
-- Usá:
WHERE ciudad IN ('BsAs', 'Córdoba', 'Rosario')

LIKE — búsqueda por patrón

LIKE permite buscar texto que coincida con un patrón usando wildcards:

Patrón Match No match
'Gar%' García, Garza, Gar Agarro, Pegar
'%ez' Pérez, López, Fernández Pérezito
'%an%' Fernández, Banco, Manzana Pedro
'_ópez' López Gómez (no tiene 5 letras con ópez)

IS NULL — valores faltantes

NUNCA uses = NULL. En SQL, NULL no es un valor — es la ausencia de valor. La comparación columna = NULL SIEMPRE da NULL (ni True ni False). Tenés que usar IS NULL o IS NOT NULL.
NULL en análisis de datos: NULL es el equivalente al NaN de pandas. Representa "dato faltante" y tiene comportamiento especial: cualquier operación con NULL da NULL. 5 + NULL = NULL, NULL = NULL es NULL (no True). Por eso existe IS NULL como operador especial.
En el trabajo: el 80% de tus consultas SQL van a tener WHERE. Saber filtrar eficientemente es la habilidad #1. "Dame los clientes activos de Buenos Aires con score entre 650 y 800 que tengan email registrado" es una consulta que combina =, BETWEEN, AND e IS NOT NULL — todo lo de esta lección.
02

Ejemplos explicados paso a paso

Ejemplo 1: BETWEEN para rangos

ejemplo_01_between.sqlSQL

        
Hacé clic en ▶ Ejecutar

Ejemplo 2: IN para listas de valores

ejemplo_02_in.sqlSQL

        
Hacé clic en ▶ Ejecutar

Ejemplo 3: LIKE para búsqueda de texto

ejemplo_03_like.sqlSQL

        
Hacé clic en ▶ Ejecutar

Ejemplo 4: IS NULL / IS NOT NULL

ejemplo_04_null.sqlSQL

        
Hacé clic en ▶ Ejecutar

Ejemplo 5: Combinación compleja de filtros

ejemplo_05_combinado.sqlSQL

        
Hacé clic en ▶ Ejecutar
03

Referencia rápida

Operador Uso Ejemplo
BETWEEN a AND b Rango inclusivo WHERE score BETWEEN 600 AND 800
IN (lista) Pertenece a lista WHERE ciudad IN ('BsAs','Cba')
NOT IN (lista) No pertenece WHERE ciudad NOT IN ('BsAs')
LIKE '%texto%' Contiene texto WHERE email LIKE '%banco%'
LIKE 'texto%' Empieza con WHERE nombre LIKE 'Gar%'
LIKE '%texto' Termina con WHERE nombre LIKE '%ez'
IS NULL Es nulo WHERE email IS NULL
IS NOT NULL No es nulo WHERE email IS NOT NULL
NOT Niega condición WHERE NOT score > 700
04

Ejercicios

Nivel 1 · Básico

Ejercicio 1: BETWEEN

Traé clientes con score entre 650 y 750. Debe incluir García.

ejercicio_01.sqlDebe incluir "García"

          
Hacé clic en ▶ Ejecutar
Nivel 1 · Básico

Ejercicio 2: IN

Traé clientes de Buenos Aires, Córdoba o Rosario usando IN. Debe incluir Martínez.

ejercicio_02.sqlDebe incluir "Martínez"

          
Hacé clic en ▶ Ejecutar
Nivel 1 · Básico

Ejercicio 3: LIKE con %

Traé clientes cuyo nombre empiece con 'P'. Debe incluir Pérez.

ejercicio_03.sqlDebe incluir "Pérez"

          
Hacé clic en ▶ Ejecutar
Nivel 2 · Intermedio

Ejercicio 4: IS NULL

Traé clientes que NO tengan email. Debe incluir López.

ejercicio_04.sqlDebe incluir "López"

          
Hacé clic en ▶ Ejecutar
Nivel 2 · Intermedio

Ejercicio 5: NOT IN

Traé clientes que NO sean de Buenos Aires ni de Córdoba. Debe incluir Fernández.

ejercicio_05.sqlDebe incluir "Fernández"

          
Hacé clic en ▶ Ejecutar
Nivel 2 · Intermedio

Ejercicio 6: LIKE con % al inicio y final

Traé clientes cuyo email contenga "banco". Debe incluir garcia.

ejercicio_06.sqlDebe incluir "garcia"

          
Hacé clic en ▶ Ejecutar
Nivel 3 · Avanzado

Ejercicio 7: Combinación AND + BETWEEN + IS NOT NULL

Traé clientes activos con score entre 600 y 800 que tengan email. Debe incluir Sosa.

ejercicio_07.sqlDebe incluir "Sosa"

          
Hacé clic en ▶ Ejecutar
Nivel 3 · Avanzado

Ejercicio 8: OR con paréntesis

Traé clientes que: (sean de BsAs Y tengan score > 700) O (tengan saldo > 300000). Debe incluir López.

ejercicio_08.sqlDebe incluir "López"

          
Hacé clic en ▶ Ejecutar
Nivel 3 · Avanzado

Ejercicio 9: LIKE + IN + IS NOT NULL

Traé clientes con nombre que termine en 'ez', de BsAs o Córdoba, que tengan email. Debe incluir Pérez o López.

ejercicio_09.sqlDebe incluir "ez"

          
Hacé clic en ▶ Ejecutar
Nivel 4 · Desafío

Ejercicio 10: Consulta de análisis completa

Contá cuántos clientes activos de Buenos Aires tienen score >= 700 y email registrado. Debe incluir 2.

ejercicio_10.sqlDebe incluir "2"

          
Hacé clic en ▶ Ejecutar
05

Resumen y conexión

En la siguiente lección (03 · Operadores y filtros avanzados) vas a aprender CASE WHEN, COALESCE, NULLIF y CAST — las herramientas para transformar datos dentro del SELECT.

Recursos: W3Schools — WHERE