> lección 3/18 · 12 min

Filtros con WHERE

Concepto

WHERE filtra filas: de toda la tabla, se queda solo con las que cumplen una condición. Es la diferencia entre "todos los cursos" y "los cursos intermedios de más de 25 horas".

Sintaxis
SELECT columnas
FROM tabla
WHERE condición;

Comparar texto. El texto va entre comillas simples y tiene que coincidir exactamente, con tildes incluidas.

SELECT titulo, nivel FROM cursos WHERE nivel = 'Intermedio';

Comparar números. Los números van sin comillas. Los operadores son =, <> (distinto), >, <, >= y <=. Fíjate si el límite se incluye: "25 o más" es >= 25; "más de 25" es > 25.

SELECT titulo, horas FROM cursos WHERE horas >= 25;

AND: las dos condiciones. Una fila pasa solo si cumple ambas.

SELECT titulo, nivel, horas FROM cursos WHERE nivel = 'Intermedio' AND horas >= 25;

OR: una u otra. Una fila pasa si cumple al menos una. Cuando mezcles AND y OR, usa paréntesis para dejar claro qué va con qué.

SELECT titulo, nivel FROM cursos WHERE nivel = 'Básico' OR nivel = 'Avanzado';

El orden de las cláusulas. Primero SELECT, después FROM y después WHERE. Escritas en otro orden, la consulta da error.

> tarea SQL

La sede de Santiago organiza un taller para mayores de edad legal de la escuela: estudiantes de Santiago con 21 años o más. Muestra su nombre, edad y ciudad.

Tablas disponibles
  • cursos: id, titulo, nivel, horas
  • estudiantes: id, nombre, correo, edad, ciudad
  • inscripciones: id, estudiante_id, curso_id, nota, estado

Primero intenta: las pistas aparecen después de 2 intentos con un resultado incorrecto (los errores de código no cuentan). Llevas 0.

Aprueba las tareas de esta lección para ver el cierre.