¿Te resulta más fácil leer con fondo crema, un tono de color, más contraste o un texto más grande? Elige tus colores y tu texto una sola vez, para todas las páginas.

Lección gratuita

Encontrar las filas que buscas

Después de esta lección: Puedo encontrar con SQL las filas que cumplen una condición.

Lección de 45 minSin comandos

Ocho pedidos hoy, ocho mil mañana

Trabajas en atención al cliente de Café Turia, una tienda online de café de Valencia.

Tu responsable te pide los pedidos pendientes para llamar a esos clientes. Hoy hay ocho pedidos y podrías mirarlos uno a uno. En diciembre habrá miles. Necesitas pedir a la base de datos solo las filas que te interesan.

Al final de esta lección

Nota

Puedo encontrar con SQL las filas que cumplen una condición.

Palabras clave

PalabraQué significaEjemplo
Tabladatos guardados en filas y columnas
Filaun registro completo, como un pedido
Columnaun dato que tiene cada filaamount
Consultauna pregunta que haces a la base de datos
SQLel lenguaje para escribir consultas
Condiciónuna prueba que cada fila pasa o no pasastatus = 'pagado'

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

SELECT elige las columnas

Una consulta empieza casi siempre por SELECT. Detrás pones las columnas que quieres ver.

FROM dice de qué tabla salen. El asterisco * significa todas las columnas.

En la empresa, los nombres de tablas y columnas suelen ir en inglés. Así los lee cualquier equipo, también uno de otro país. Por eso aquí verás orders y amount.

Prueba: elegir columnas

Código: sql
-- Todas las columnas de todos los pedidos.
SELECT * FROM orders;

-- Solo el cliente y el importe.
SELECT customer, amount FROM orders;

-- Añade la columna city a la segunda consulta y vuelve a ejecutar.

WHERE elige las filas

WHERE va después de FROM y lleva una condición.

La base de datos prueba la condición en cada fila. Se queda con las filas que la cumplen y descarta el resto.

Un texto se escribe entre comillas simples: 'pagado'. Un número va sin comillas: amount > 50. Puedes usar =, >, <, >= y <=.

Prueba: solo los pedidos pagados

Código: sql
-- Solo los pedidos pagados.
-- El texto va entre comillas simples.
SELECT id, customer, amount
FROM orders
WHERE status = 'pagado';

-- Cambia 'pagado' por 'pendiente' y vuelve a ejecutar.

Ejemplo: la condición fila a fila

PedidoImporte¿amount > 50?Resultado
142 €NoSe descarta
375 €SíSe queda
4120 €SíSe queda
533 €NoSe descarta
664 €SíSe queda
858 €SíSe queda

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

AND y OR juntan dos condiciones

Con AND, la fila tiene que cumplir las dos condiciones.

Con OR, basta con que cumpla una de ellas.

Ejecuta el bloque siguiente y compara los dos resultados. La primera consulta da menos filas, porque pide más.

Prueba: dos condiciones a la vez

Código: sql
-- Pedidos de Valencia de más de 50 euros.
SELECT id, customer, amount
FROM orders
WHERE city = 'Valencia' AND amount > 50;

-- Ahora los pedidos de Madrid o de Bilbao.
SELECT id, customer, city
FROM orders
WHERE city = 'Madrid' OR city = 'Bilbao';

Un error frecuente

Advertencia

Mucha gente piensa que «Madrid y Bilbao» se escribe con AND. No es así. Ningún pedido tiene dos ciudades a la vez, así que AND devuelve cero filas. Si quieres las filas de una ciudad o de la otra, usa OR.

¿Enseñas a una clase? Asigna este módulo a tus alumnos con guía del profesor, tareas con corrección automática y un laboratorio para cada alumno.