SQL desde cero · lección 1 de 2
Qué es una tabla, cómo pedirle columnas, ordenarlas y quedarte con las primeras. Cinco minutos y cuatro ejercicios.
Una base de datos guarda la información en tablas: filas y columnas, como una hoja de cálculo. Cada fila es una cosa (aquí, un sospechoso) y cada columna es un dato de esa cosa (su nombre, su edad, su ciudad).
SQL es el idioma para hacerle preguntas a esas tablas. La pregunta más simple tiene dos partes: SELECT dice qué columnas quieres ver y FROM dice de qué tabla. El asterisco * significa «todas las columnas».
Después puedes ordenar el resultado con ORDER BY (de menor a mayor; con DESC, al revés) y quedarte con las primeras filas con LIMIT. El orden de las palabras importa: SELECT … FROM … ORDER BY … LIMIT ….
sospechosos
| id | nombre | edad | ciudad | oficio |
|---|---|---|---|---|
| 1 | Lucía Prado | 34 | Bahía Lumen | fotógrafa |
| 2 | Joel Ibarra | 52 | Puerto Sal | cerrajero |
| 3 | Marta Solís | 27 | Bahía Lumen | enfermera |
| 4 | Iker Vela | 41 | San Ciro | taxista |
| 5 | Rocío Andrade | 63 | Puerto Sal | joyera |
| 6 | Damián Cuevas | 19 | San Ciro | repartidor |
| 7 | Elena Ruiz | 46 | Bahía Lumen | contadora |
| 8 | Bruno Paz | 38 | Puerto Sal | mecánico |
Puedes escribir aquí mismo: cada ejercicio se ejecuta con DuckDB en tu navegador, sin instalar nada. Con el teclado: Ctrl + Enter.
La consulta ya está escrita: pide todas las columnas de la tabla sospechosos. Pulsa «Ejecutar».
No hay que cambiar nada: sólo ejecutar. Mirar la tabla entera es siempre lo primero.
Ahora quiero sólo el nombre y la ciudad de cada sospechoso.
Cambia el * por los nombres de las columnas, separados por comas: nombre, ciudad.
El nombre y la edad, ordenados del sospechoso de más edad al más joven.
Añade ORDER BY edad al final. Eso ordena de menor a mayor; DESC le da la vuelta: ORDER BY edad DESC.
El nombre y la edad de los tres sospechosos más jóvenes, del más joven al mayor.
Ya están ordenados de menor a mayor. LIMIT 3, al final, se queda con las tres primeras filas.
Lección terminada.
Lección 2: filtrar filas con WHERE →