Buscar fila por fila
SQL · Unidad 15: Índices y rendimiento
- Plan completo
- SQL
- 9 ejercicios
Luis abre la app de la tienda y toca «Mis pedidos». ¿Qué he pedido? La app corre esta consulta y salen sus tres pedidos.
Para encontrarlos, la base leyó los doce. pedidos está guardada por su id, el número de pedido, y las de Luis pueden estar en cualquier parte. Nada le dice dónde. Así que pasa por cada fila y pregunta si su cliente_id es 2. Las que dicen que sí, salen. Las otras nueve también las leyó.
SELECT id, producto_id, fecha
FROM pedidos
WHERE cliente_id = 2;Devuelve
| id | producto_id | fecha |
|---|---|---|
| 3 | 2 | 2026-01-04 |
| 6 | 3 | 2026-01-11 |
| 12 | 6 | 2026-01-20 |
El resto de la explicación está en la lección, que es del plan completo.
Ejercicios de esta lección
Se hacen en la app, que los corrige al momento y explica por qué.
1. Opción múltiple
Bruno también toca «Mis pedidos». Es el cliente 8 y nunca ha pedido nada, así que esta consulta no devuelve ninguna fila. ¿Cuántas filas de
pedidostuvo que leer la base para saberlo?2. Opción múltiple
En la tienda de los 800 000 pedidos, Luis tiene 40. Toca «Mis pedidos». ¿Cuántas filas lee la base, buscando como hasta ahora?
3. Completa el código
El dueño quiere saber cómo busca la base los productos agotados. Completa para pedirle el plan, sin correr la consulta.
4. Predice la salida
Alguien quiere ver el plan de un borrado antes de atreverse a correrlo. ¿Qué devuelve el último
SELECT?5. Encuentra el bug
Debería salir el plan de la búsqueda de los pedidos de 3 unidades o más. Sale un error. ¿Qué línea tiene el problema?
6. Ordena las líneas
El catálogo se imprime del producto más caro al más barato. Ordena las líneas para ver el plan de esa consulta. Sobran dos.
7. Completa el código
Aquí una tabla como
pedidosestá guardada en el orden de su clave, elid. Completa para que el plan tenga una sola línea, porque la base no tiene nada que ordenar aparte.8. Opción múltiple
El dueño pide cada noche cuántas unidades se han pedido en total. El plan de esta consulta dice
SCAN pedidos. ¿Hay algo que arreglar?9. Encuentra el caso que falla
Con
LIMITy sin nada que ordenar, la base deja de leer en cuanto junta las filas que le pidieron. Alguien lo aprovecha en «Mis pedidos»: como Luis tiene tres pedidos, le poneLIMIT 3para que no siga leyendo. Debe salir elidde todos los pedidos de Luis. ¿Con cuál de estos datos deja de salir lo correcto?
Se abre en el navegador. Esta lección es del plan completo; la primera unidad de cada curso es gratis.