🔹 Introducción
En la lección anterior aprendiste a filtrar datos con WHERE usando condiciones simples como =, >, < o !=.
Pero en la vida real, muchas veces necesitamos combinar varias condiciones al mismo tiempo.
Ejemplos:
- Mostrar los alumnos mayores de 18 años Y que vivan en Madrid.
- Mostrar los alumnos que tengan 17 años O que sean de Buenos Aires.
- Mostrar los alumnos que NO vivan en Ciudad de México.
👉 Para eso utilizamos los operadores lógicos:
AND→ ambas condiciones deben cumplirse.OR→ se cumple una u otra condición.NOT→ excluye resultados que cumplen una condición.
🔹 Sintaxis general
SELECT columnas
FROM tabla
WHERE condición1 AND/OR/NOT condición2;
👉 Aquí SELECT define las columnas que verás, y WHERE aplica los filtros lógicos.
🔹 Ejemplo base (nuestra tabla alumnos)
Recordemos la tabla con la que venimos trabajando:
| id | nombre | edad | ciudad |
|---|---|---|---|
| 1 | Ana | 20 | Buenos Aires |
| 2 | Juan | 17 | Ciudad de México |
| 3 | Laura | 22 | Madrid |
| 4 | Pedro | 18 | Madrid |
🔹 Ejemplo 1: usar AND
Queremos ver a los alumnos que tienen más de 18 años y que viven en Madrid:
SELECT nombre, edad, ciudad
FROM alumnos
WHERE edad > 18 AND ciudad = 'Madrid';
👉 Resultado esperado:
| nombre | edad | ciudad |
|---|---|---|
| Laura | 22 | Madrid |
🔹 Ejemplo 2: usar OR
Queremos ver a los alumnos que son de Buenos Aires o que tienen 17 años:
SELECT nombre, edad, ciudad
FROM alumnos
WHERE ciudad = 'Buenos Aires' OR edad = 17;
👉 Resultado esperado:
| nombre | edad | ciudad |
|---|---|---|
| Ana | 20 | Buenos Aires |
| Juan | 17 | Ciudad de México |
🔹 Ejemplo 3: usar NOT
Queremos ver a todos los alumnos que no viven en Madrid:
SELECT nombre, ciudad
FROM alumnos
WHERE NOT ciudad = 'Madrid';
👉 Resultado esperado:
| nombre | ciudad |
|---|---|
| Ana | Buenos Aires |
| Juan | Ciudad de México |
🔹 Ejemplo 4: combinar AND y OR
Queremos ver a los alumnos que (son de Madrid y mayores de 18) o que son de Buenos Aires.
SELECT nombre, edad, ciudad
FROM alumnos
WHERE (ciudad = 'Madrid' AND edad > 18) OR ciudad = 'Buenos Aires';
👉 Resultado esperado:
| nombre | edad | ciudad |
|---|---|---|
| Ana | 20 | Buenos Aires |
| Laura | 22 | Madrid |
📌 Nota: Los paréntesis ayudan a dejar claro el orden de las condiciones, igual que en matemáticas.
🔹 Ejemplo 5: usar NOT con AND
Queremos ver a los alumnos que no sean de Buenos Aires y además no tengan 17 años.
SELECT nombre, edad, ciudad
FROM alumnos
WHERE ciudad <> 'Buenos Aires'
AND edad <> 17;👉 Resultado esperado:
| nombre | edad | ciudad |
|---|---|---|
| Laura | 22 | Madrid |
| Pedro | 18 | Madrid |
🔹 Ejercicio práctico (para ti)
- Muestra los alumnos que tengan 18 años y vivan en Madrid.
- Muestra los alumnos que sean de Ciudad de México o tengan más de 21 años.
- Muestra los alumnos que no sean de Buenos Aires.
- Muestra los alumnos que (sean de Madrid y mayores de 20) o que tengan 17 años.
🔹 Soluciones
SELECT *
FROM alumnos
WHERE edad = 18 AND ciudad = 'Madrid';
SELECT *
FROM alumnos
WHERE ciudad = 'Ciudad de México' OR edad > 21;
SELECT nombre, ciudad
FROM alumnos
WHERE NOT ciudad = 'Buenos Aires';
SELECT *
FROM alumnos
WHERE (ciudad = 'Madrid' AND edad > 20) OR edad = 17;
🔹 Mini Quiz
Resultados
#1. ¿Qué operador lógico muestra resultados solo si se cumplen todas las condiciones?
#2. ¿Cuál de estas consultas muestra a los alumnos de Madrid o de Buenos Aires?
#3. ¿Qué hace el operador NOT en SQL?
🔹 Resumen de la lección
AND→ ambas condiciones deben cumplirse.OR→ se cumple una condición u otra.NOT→ excluye registros que cumplen una condición.- Puedes combinar varios operadores y usar paréntesis para controlar el orden.
👉 En la próxima lección aprenderás a ordenar y limitar resultados con ORDER BY y LIMIT.
🔄 Si deseas repasar o avanzar, consulta el temario completo en el Curso SQL online.