Skip to content

Latest commit

 

History

History

README.md

🗄️ SQL para Data Engineers

Esta carpeta contiene todo lo que necesitas saber sobre SQL aplicado a la Ingeniería de Datos.

💡 Nota importante: Este módulo usa PostgreSQL como sistema de base de datos, pero enseña SQL estándar que funciona en otros sistemas. Lee SQL vs PostgreSQL para entender las diferencias y por qué elegimos PostgreSQL.

🛠️ Herramientas recomendadas

Antes de empezar, necesitas una herramienta para ejecutar SQL. Te recomendamos:

  • DBeaver - Cliente SQL universal, gratuito y potente (recomendado)
  • Otras opciones - pgAdmin, TablePlus, DataGrip, VS Code extensions

💡 ¿No sabes cuál elegir? Lee la comparación de herramientas o ve directo con DBeaver, es la opción más completa y gratuita.


📖 Contenido

📘 Estructura

  • SQL vs PostgreSQL

    • ¿Cuál es la diferencia?
    • ¿Por qué usamos PostgreSQL?
    • SQL estándar vs extensiones PostgreSQL
  • Herramientas SQL

    • DBeaver: Cliente Universal - Recomendado para empezar
      • Instalación y configuración paso a paso
      • Conectar a PostgreSQL
      • Editor SQL con autocompletado
      • Query Builder visual
      • Exportar datos
    • Otras Herramientas
      • pgAdmin (incluido en Docker)
      • TablePlus, DataGrip, VS Code extensions
      • Comparación y cuándo usar cada una
  • SQL básico

    • SELECT, FROM, WHERE
    • JOINs básicos
    • Agregaciones (GROUP BY, HAVING)
    • Ordenamiento y límites
    • Funciones comunes
  • SQL intermedio

    • Subconsultas y CTEs
    • Window functions
    • Manejo avanzado de fechas
    • Optimización básica
  • SQL avanzado

    • Particionamiento
    • Índices avanzados
    • Funciones analíticas avanzadas
    • Patrones complejos
  • Modelado Relacional

    • Normalización
    • Diseño de esquemas
    • Relaciones y claves
    • Data Warehouses
  • Ejercicios

    • Ejercicios prácticos por nivel
    • Casos de uso reales
    • Soluciones comentadas

🎯 Objetivo de esta sección

Al finalizar esta sección, deberías poder:

  • Usar herramientas SQL (DBeaver, pgAdmin, etc.) para visualizar datos
  • Escribir consultas SQL eficientes y mantenibles
  • Generar queries con ayuda visual (Query Builder)
  • Diseñar esquemas de bases de datos apropiados
  • Optimizar queries para grandes volúmenes de datos
  • Aplicar SQL en pipelines de datos

📚 Flujo de aprendizaje recomendado

  1. Configura tu entorno

  2. Aprende SQL básico - Fundamentos con ayuda visual

    • Usa el editor SQL de DBeaver para practicar
    • Visualiza resultados directamente en DBeaver
  3. Profundiza en SQL intermedio - Conceptos avanzados

    • Aprovecha el autocompletado y formateo de DBeaver
  4. Explora SQL avanzado - Optimización y patrones complejos

    • Usa EXPLAIN en DBeaver para analizar rendimiento
  5. Practica con Ejercicios - Usa DBeaver para visualizar resultados


🚀 ¿Qué sigue?

Según el roadmap, después de dominar SQL:

👉 Siguiente etapa: 03_python (Etapa 2 del roadmap)

  • Automatización y estructurar procesos
  • Python para Data Engineering
  • Manejo de archivos y Pandas

Después: 04_modelado_y_calidad (Etapa 3) para diseño de modelos analíticos y calidad de datos.

💡 Tip: Revisa el Roadmap completo para ver la ruta completa.


🐳 Base de Datos Local con Docker

Para practicar SQL, puedes usar una base de datos PostgreSQL 15 local con Docker:

  1. Asegúrate de tener el archivo .env en la raíz del proyecto:

    # Desde la raíz del proyecto (no desde 02_sql/)
    cp .env.example .env

    💡 Nota: El docker-compose.yml usa automáticamente el .env de la raíz del proyecto, no necesitas crear uno en 02_sql/.

  2. Inicia la base de datos:

    cd 02_sql
    docker-compose up -d
  3. Conecta tu herramienta SQL:

Esto te dará:

  • PostgreSQL 15 listo para usar
  • Datos de ejemplo (usuarios, productos, ventas)
  • Herramientas para trabajar: DBeaver, pgAdmin, o la que prefieras

💡 ¿Por qué PostgreSQL? Lee SQL vs PostgreSQL para entender por qué usamos PostgreSQL en este repositorio y cómo se relaciona con SQL estándar.


💡 Tip

SQL es fundamental para Data Engineering. Dedica tiempo a practicar y entender los conceptos, no solo memorizar sintaxis.