Al terminar, podrás
- Combinar condiciones.
- Utilizar paréntesis.
- Explicar la diferencia entre AND y OR.
Recupera lo aprendido: ¿Cómo expresarías por separado «es de Accesorios» y «tiene stock positivo»?
La idea clave
AND exige que todas las condiciones sean verdaderas; OR necesita al menos una; NOT invierte una condición. Los paréntesis hacen explícito el orden cuando se combinan.
Usa paréntesis cuando mezcles AND y OR. Aunque los motores tienen reglas de precedencia, los paréntesis hacen visible tu intención y evitan que otra persona interprete una condición diferente.
ANDreduce el resultado: todas las partes deben ser verdaderas.ORamplía alternativas: basta con que una parte sea verdadera.NOTniega una condición completa.
Una condición compuesta es más fácil de revisar cuando cada parte puede explicarse por separado. Escribe primero las comparaciones simples, comprueba qué acepta cada una y después únelas.
Lee de dentro hacia fuera
En (A OR B) AND C, resuelve primero las alternativas del paréntesis y después exige C. Por ejemplo, «de Accesorios o Pantallas, y además con stock» necesita que la condición de stock se aplique a ambas categorías.
NOT cambia verdadero por falso y falso por verdadero. Si una condición es desconocida por un NULL, su negación sigue siendo desconocida; volverás a este caso en la lección de valores ausentes.
La sintaxis básica
WHERE condición1 AND condición2
WHERE condición1 OR condición2
WHERE NOT condiciónEjemplo paso a paso
| id | nombre | ciudad | activo |
|---|---|---|---|
| 1 | Ana Torres | Madrid | 1 |
| 2 | Luis Martín | Valencia | 1 |
| 3 | Marta Ruiz | Madrid | 1 |
| 4 | Diego López | Bilbao | 1 |
| 5 | Sara Gómez | Sevilla | 1 |
| 6 | Pablo Sanz | Madrid | 0 |
| 7 | Lucía Vega | Bilbao | 1 |
| 8 | Hugo Castro | Valencia | 1 |
| 9 | Noa Vidal | Madrid | 1 |
| 10 | Iván Mora | Zaragoza | 1 |
| 11 | Elena Rey | Sevilla | 1 |
| 12 | Mario Gil | A Coruña | 1 |
Comprueba cada comparación por separado y luego aplica AND.
SELECT nombre, ciudad
FROM clientes
WHERE ciudad = 'Madrid'
AND activo = 1;| nombre | ciudad |
|---|---|
| Ana Torres | Madrid |
| Marta Ruiz | Madrid |
| Noa Vidal | Madrid |
Cómo funciona
ciudad = 'Madrid'encuentra cuatro clientes de esa ciudad.activo = 1excluye a Pablo Sanz.ANDexige ambas condiciones y conserva tres filas.
Un error habitual
Qué falla aquí
WHERE categoria = 'Accesorios' OR 'Pantallas'Cada lado de OR debe ser una condición completa.
Practica con datos
Laboratorio SQL
Resuelve la consulta
Escribe una consulta que devuelva nombre y stock de los productos de Accesorios que tengan stock mayor que 0.
Resultado esperado: 3 filas con nombre, stock. El orden de las filas no importa.
Ver tablas y datos
Cargando la estructura del ejercicio…
Escribe dos condiciones completas.
Únelas con AND.
La segunda condición es stock > 0.
Solución
SELECT nombre, stock FROM productos WHERE categoria = 'Accesorios' AND stock > 0;AND obliga a que cada fila cumpla ambas condiciones. Con estos datos, los tres productos de Accesorios tienen stock mayor que 0, por eso aparecen los tres.
Puedes consultar la solución y volver a intentarlo. La práctica se completa cuando tu consulta funciona.
La consulta usa datos ficticios y se ejecuta solo en este navegador.
Comprueba si puedes explicarlo
Un producto de Accesorios tiene stock 0. ¿Pasa (categoria = Accesorios O categoria = Pantallas) Y stock > 0?
Ver respuesta razonada
No. Cumple una alternativa de categoría, pero incumple la condición obligatoria de stock. En SQL los textos van entre comillas simples y la agrupación se escribe con paréntesis.
Responde antes de abrir la explicación. Si necesitaste ayuda, cierra la respuesta y vuelve a explicarlo con tus palabras antes de dar la lección por aprendida.
Qué debes recordar
- AND exige todo; OR acepta alternativas.
- Los paréntesis evitan ambigüedad.
- NOT invierte una condición completa.
A continuación: Continúa con Filtra rangos y listas con BETWEEN e IN.
Fuentes técnicas consultadas
Las fuentes oficiales se utilizaron para verificar la lógica de tres valores y la precedencia de AND, OR y NOT.
- PostgreSQL: operadores lógicos y lógica de tres valores
- SQLite: operadores, expresiones y precedencia