Aprende los fundamentos de SQL paso a paso con ejercicios prácticos y didácticos usando la base de datos Pokémon. Cada sección incluye una consola SQL integrada para que practiques directamente aquí.
En esta guía básica dominarás los conceptos fundamentales de SQL que te permitirán:
Aprender a usar la consulta SELECT para obtener datos de una tabla.
SELECT es el comando fundamental de SQL que te permite consultar datos de una base de datos. Es como decirle a la base de datos: "Muéstrame esta información".
SELECT columna1, columna2 FROM nombre_tabla;
Escenario: Quieres ver todos los nombres y tipos de Pokémon.
Resultado esperado: Una lista con dos columnas: nombre y tipo primario de cada Pokémon.
💡 Pista: Necesitas usar SELECT para elegir las columnas 'nombre' y 'tipo_primario' de la tabla 'pokemones_con_tipos'.
Aprender a usar el asterisco (*) para seleccionar todas las columnas de una tabla.
El asterisco * es un comodín que significa "todas las columnas". Es útil cuando quieres ver toda la información disponible.
SELECT * FROM nombre_tabla;
Escenario: Quieres ver toda la información disponible de todos los Pokémon.
Resultado esperado: Todas las columnas y filas de la tabla Pokémon.
💡 Pista: Usa el asterisco (*) para seleccionar todas las columnas de la tabla 'pokemones_con_tipos'.
Aprender a filtrar resultados usando la cláusula WHERE para obtener solo los datos que necesitas.
WHERE actúa como un filtro que te permite especificar condiciones para obtener solo los registros que cumplen ciertos criterios.
SELECT columna1, columna2 FROM nombre_tabla WHERE condicion;
Escenario: Quieres ver solo los Pokémon de tipo "Fuego".
Resultado esperado: Solo los Pokémon que tienen tipo primario "Fuego".
💡 Pista: Usa SELECT para elegir 'nombre' y 'tipo_primario', FROM para la tabla 'pokemones_con_tipos', y WHERE para filtrar solo los que tienen tipo_primario igual a 'Fuego'.
💡 Experimenta: Prueba con otros tipos como 'Agua', 'Planta', 'Eléctrico' o filtra por altura o peso.
Aprender a filtrar usando operadores de comparación con valores numéricos.
Puedes usar operadores como > (mayor que), < (menor que), >= (mayor o igual) para filtrar valores numéricos.
SELECT nombre, altura FROM pokemones_con_tipos WHERE altura > 1.0;
Escenario: Quieres ver solo los Pokémon que miden más de 1 metro de altura.
Resultado esperado: Solo los Pokémon con altura mayor a 1.0 metros.
💡 Pista: Selecciona 'nombre' y 'altura', de la tabla 'pokemones_con_tipos', y usa WHERE con el operador '>' para filtrar solo los que tienen altura mayor a 1.0.
💡 Experimenta: Prueba con otros operadores: altura < 0.5, peso > 50, altura >= 1.5
Aprender a ordenar los resultados de tus consultas de forma ascendente o descendente.
ORDER BY te permite organizar los resultados de tu consulta. Puedes ordenar por una o más columnas, y especificar si quieres orden ascendente (ASC) o descendente (DESC).
SELECT columna1, columna2 FROM nombre_tabla ORDER BY columna1 ASC;
Escenario: Quieres ver los Pokémon ordenados por altura, del más alto al más bajo.
Resultado esperado: Lista de Pokémon ordenados por altura de mayor a menor.
💡 Pista: Selecciona 'nombre' y 'altura', de la tabla 'pokemones_con_tipos', y usa ORDER BY altura DESC para ordenar de mayor a menor.
💡 Experimenta: Cambia DESC por ASC para ordenar de menor a mayor, o prueba ordenar por peso o nombre.
Aprender a ordenar por múltiples columnas para obtener resultados más organizados.
Puedes ordenar por múltiples columnas separándolas con comas. El orden es importante: primero se ordena por la primera columna, y si hay empates, se ordena por la segunda.
SELECT columna1, columna2 FROM nombre_tabla ORDER BY columna1 ASC, columna2 DESC;
Escenario: Quieres ver los Pokémon ordenados primero por tipo y luego por nombre alfabéticamente.
Resultado esperado: Pokémon agrupados por tipo y ordenados alfabéticamente dentro de cada tipo.
💡 Pista: Selecciona 'nombre' y 'tipo_primario', de la tabla 'pokemones_con_tipos', y usa ORDER BY con dos columnas: primero tipo_primario ASC, luego nombre ASC.
💡 Experimenta: Prueba ordenar por altura DESC, peso ASC o combina con WHERE para filtrar antes de ordenar.
Aprender a usar funciones como COUNT, SUM, AVG para obtener estadísticas de tus datos.
Las funciones de agregación te permiten calcular valores basados en múltiples filas. Son útiles para obtener resúmenes y estadísticas de tus datos.
SELECT COUNT(*), SUM(columna), AVG(columna) FROM nombre_tabla;
Escenario: Quieres saber cuántos Pokémon hay en total y cuál es su altura promedio.
Resultado esperado: Una fila con el total de Pokémon y la altura promedio.
💡 Pista: Usa COUNT(*) para contar todos los registros y AVG(altura) para calcular la altura promedio. Usa alias para nombrar las columnas resultantes.
💡 Experimenta: Prueba COUNT(*) para contar todos los registros, SUM(peso) para sumar pesos, o combina con WHERE para filtrar antes de agregar.
Aprender a agrupar datos por categorías para obtener estadísticas por grupo.
GROUP BY te permite agrupar los resultados por una o más columnas y aplicar funciones de agregación a cada grupo. Es útil para obtener estadísticas por categorías.
SELECT columna_grupo, COUNT(*), AVG(columna) FROM nombre_tabla GROUP BY columna_grupo;
Escenario: Quieres saber cuántos Pokémon hay de cada tipo y cuál es la altura promedio por tipo.
Resultado esperado: Una fila por cada tipo con la cantidad de Pokémon y altura promedio de ese tipo.
💡 Pista: Selecciona 'tipo_primario', usa COUNT(*) y AVG(altura) con alias, de la tabla 'pokemones_con_tipos', y agrupa por 'tipo_primario' usando GROUP BY.
💡 Experimenta: Prueba agrupar por es_legendario, o combina con ORDER BY para ordenar los resultados del agrupamiento.
Aprender a limitar el número de resultados usando LIMIT para mejorar el rendimiento.
LIMIT te permite controlar cuántas filas devuelve tu consulta. Es especialmente útil cuando trabajas con bases de datos grandes y solo necesitas ver los primeros resultados.
SELECT columna1, columna2 FROM nombre_tabla LIMIT 10;
Escenario: Quieres ver solo los primeros 5 Pokémon ordenados por nombre.
Resultado esperado: Solo los primeros 5 Pokémon ordenados alfabéticamente.
💡 Pista: Selecciona 'nombre' y 'tipo_primario', de la tabla 'pokemones_con_tipos', ordena por 'nombre' usando ORDER BY, y limita a 5 resultados con LIMIT.
💡 Experimenta: Cambia el número de LIMIT (3, 10, 20), combina LIMIT con ORDER BY y WHERE, observa cómo LIMIT mejora el rendimiento.
Aplicar todos los conceptos aprendidos en una sola consulta compleja.
Ahora que dominas los conceptos básicos, puedes combinarlos para crear consultas más poderosas. El orden típico es: SELECT → FROM → WHERE → GROUP BY → ORDER BY → LIMIT.
Orden típico: SELECT → FROM → WHERE → GROUP BY → ORDER BY → LIMIT
Escenario: Quieres ver los 3 tipos de Pokémon más comunes, ordenados de mayor a menor cantidad.
Resultado esperado: Los 3 tipos con más Pokémon, ordenados de mayor a menor cantidad.
💡 Pista: Selecciona 'tipo_primario' y cuenta con COUNT(*), agrupa por 'tipo_primario', ordena por la cantidad de forma descendente, y limita a 3 resultados.
💡 Experimenta: Crea tu propia consulta combinando WHERE, GROUP BY, ORDER BY y LIMIT. ¡Sé creativo!
Has completado la Guía Básica de SQL. Ahora dominas los fundamentos esenciales para consultar bases de datos.