Guía Básica SQL

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í.

Base de Datos Seleccionada: Pokémon (con tablas de pokemones, tipos, regiones, entrenadores y más)

¿Qué aprenderás?

En esta guía básica dominarás los conceptos fundamentales de SQL que te permitirán:

  • Consultar datos de una base de datos usando SELECT
  • Filtrar resultados con condiciones WHERE
  • Ordenar información con ORDER BY
  • Contar y sumar datos con funciones de agregación
  • Limitar resultados para mejor rendimiento

📊 Estructura de la Base de Datos Pokémon:

  • pokemones_con_tipos: vista con nombre, tipo_primario, tipo_secundario, altura, peso, descripcion
  • pokemones: tabla principal con id, nombre, numero_pokedex, tipos, region_id, altura, peso
  • tipos: id, nombre, color, descripcion
  • regiones: id, nombre, lider_gimnasio, pokemon_legendarios, descripcion
  • entrenadores: id, nombre, edad, pueblo_id, especialidad, insignias
  • pueblos: id, nombre, region_id, descripcion, poblacion, tipo
1

Consulta SELECT Básica

🎯 Objetivo:

Aprender a usar la consulta SELECT para obtener datos de una tabla.

📚 Concepto:

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;

💡 Ejercicio Práctico:

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'.

🔧 Prueba en la Consola Integrada:

📊 Base de Datos: Pokémon
1.5

Seleccionar Todos los Datos

🎯 Objetivo:

Aprender a usar el asterisco (*) para seleccionar todas las columnas de una tabla.

📚 Concepto:

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;

💡 Ejercicio Práctico:

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'.

🔧 Prueba en la Consola Integrada:

📊 Base de Datos: Pokémon
2

Filtrado con WHERE

🎯 Objetivo:

Aprender a filtrar resultados usando la cláusula WHERE para obtener solo los datos que necesitas.

📚 Concepto:

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;

💡 Ejercicio Práctico:

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'.

🔧 Prueba en la Consola Integrada:

📊 Base de Datos: Pokémon

💡 Experimenta: Prueba con otros tipos como 'Agua', 'Planta', 'Eléctrico' o filtra por altura o peso.

2.5

Filtrado por Valores Numéricos

🎯 Objetivo:

Aprender a filtrar usando operadores de comparación con valores numéricos.

📚 Concepto:

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;

💡 Ejercicio Práctico:

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.

🔧 Prueba en la Consola Integrada:

📊 Base de Datos: Pokémon

💡 Experimenta: Prueba con otros operadores: altura < 0.5, peso > 50, altura >= 1.5

3

Ordenamiento con ORDER BY

🎯 Objetivo:

Aprender a ordenar los resultados de tus consultas de forma ascendente o descendente.

📚 Concepto:

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;

💡 Ejercicio Práctico:

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.

🔧 Prueba en la Consola Integrada:

📊 Base de Datos: Pokémon

💡 Experimenta: Cambia DESC por ASC para ordenar de menor a mayor, o prueba ordenar por peso o nombre.

3.5

Ordenamiento Múltiple

🎯 Objetivo:

Aprender a ordenar por múltiples columnas para obtener resultados más organizados.

📚 Concepto:

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;

💡 Ejercicio Práctico:

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.

🔧 Prueba en la Consola Integrada:

📊 Base de Datos: Pokémon

💡 Experimenta: Prueba ordenar por altura DESC, peso ASC o combina con WHERE para filtrar antes de ordenar.

4

Funciones de Agregación

🎯 Objetivo:

Aprender a usar funciones como COUNT, SUM, AVG para obtener estadísticas de tus datos.

📚 Concepto:

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;

💡 Ejercicio Práctico:

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.

🔧 Prueba en la Consola Integrada:

📊 Base de Datos: Pokémon

💡 Experimenta: Prueba COUNT(*) para contar todos los registros, SUM(peso) para sumar pesos, o combina con WHERE para filtrar antes de agregar.

4.5

Agrupación con GROUP BY

🎯 Objetivo:

Aprender a agrupar datos por categorías para obtener estadísticas por grupo.

📚 Concepto:

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;

💡 Ejercicio Práctico:

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.

🔧 Prueba en la Consola Integrada:

📊 Base de Datos: Pokémon

💡 Experimenta: Prueba agrupar por es_legendario, o combina con ORDER BY para ordenar los resultados del agrupamiento.

5

Limitación de Resultados

🎯 Objetivo:

Aprender a limitar el número de resultados usando LIMIT para mejorar el rendimiento.

📚 Concepto:

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;

💡 Ejercicio Práctico:

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.

🔧 Prueba en la Consola Integrada:

📊 Base de Datos: Pokémon

💡 Experimenta: Cambia el número de LIMIT (3, 10, 20), combina LIMIT con ORDER BY y WHERE, observa cómo LIMIT mejora el rendimiento.

5.5

Combinando Todo lo Aprendido

🎯 Objetivo:

Aplicar todos los conceptos aprendidos en una sola consulta compleja.

📚 Concepto:

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

💡 Ejercicio Práctico:

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.

🔧 Prueba en la Consola Integrada:

📊 Base de Datos: Pokémon

💡 Experimenta: Crea tu propia consulta combinando WHERE, GROUP BY, ORDER BY y LIMIT. ¡Sé creativo!

¡Felicidades!

Has completado la Guía Básica de SQL. Ahora dominas los fundamentos esenciales para consultar bases de datos.

✅ Lo que has aprendido:

  • • Consultas SELECT básicas y SELECT *
  • • Filtrado con WHERE (texto y números)
  • • Ordenamiento simple y múltiple con ORDER BY
  • • Funciones de agregación (COUNT, SUM, AVG)
  • • Agrupación con GROUP BY
  • • Limitación de resultados con LIMIT
  • • Combinación de todos los conceptos

🚀 Próximos pasos:

  • • Practica estos conceptos en el simulador completo
  • • Experimenta con diferentes bases de datos
  • • Avanza a la Guía Intermedia
  • • Aprende sobre JOINs y subconsultas