Esta sección cubre los fundamentos de SQL que todo Data Engineer debe dominar.
Nota: Los ejemplos usan PostgreSQL, pero el SQL básico es estándar y funciona en otros sistemas. Lee SQL vs PostgreSQL para más detalles.
Antes de comenzar, necesitas un editor SQL para ejecutar las queries. Aquí tienes dos opciones:
DBeaver es un cliente SQL visual y gratuito. Es la opción más recomendada para practicar.
- Abre DBeaver y conéctate a tu base de datos (si aún no lo has hecho, sigue las instrucciones en README-DOCKER.md)
- Click derecho en la conexión
data_engineering→ SQL Editor → New SQL Script- O usa el atajo: Alt+Shift+N (Windows/Linux) / Cmd+Shift+N (macOS)
- O desde el menú: File → New → SQL Script
-- Escribe tu query aquí
SELECT * FROM usuarios LIMIT 5;Para ejecutar:
- F5: Ejecuta toda la query
- Ctrl+Enter (Windows/Linux) / Cmd+Enter (macOS): Ejecuta la query seleccionada
- Alt+X: Ejecuta la query actual
Resultados:
- Los resultados aparecen en la pestaña "Data" debajo del editor
- Puedes ver múltiples resultados si ejecutas varias queries
- ✅ Autocompletado: Escribe
SELy presiona Ctrl+Space para sugerencias - ✅ Syntax highlighting: Colores para keywords, strings, números
- ✅ Formateo: Ctrl+Shift+F para formatear automáticamente
- ✅ Múltiples pestañas: Puedes tener varios scripts abiertos
💡 Guía completa: Lee DBeaver: Cliente Universal de Bases de Datos para más detalles.
Si usas Cursor, puedes ejecutar SQL directamente desde el editor.
- Abre Cursor
- Ve a Extensions (Cmd+Shift+X / Ctrl+Shift+X)
- Busca "SQLTools" o "PostgreSQL"
- Instala la extensión
Extensiones recomendadas:
- SQLTools - Soporte multi-base de datos
- SQLTools PostgreSQL - Driver específico para PostgreSQL
Opción A: Usar Connection String directo (Recomendado - Más simple)
-
Abre Command Palette (Cmd+Shift+P / Ctrl+Shift+P)
-
Escribe "SQLTools: Add New Connection"
-
En la configuración:
- Connection name:
PostgreSQL Local - Connect using: Selecciona "Connection String"
- Connection String: Escribe directamente:
postgresql://de_user:de_password@localhost:15432/data_engineering⚠️ Importante:- Reemplaza
de_passwordcon tu contraseña real si es diferente - Si cambiaste el puerto en tu
.env(ej: 5433, 5434), usa ese puerto en lugar de 15432
- Reemplaza
- Connection name:
-
Click en "Test Connection" para verificar que funciona
-
Click en "Save Connection" para guardar la conexión
Opción A2: Usar Connection String desde .env (Requiere extensión dotenv)
Si prefieres usar la variable del .env, necesitas instalar la extensión "dotenv" para VS Code/Cursor:
-
Instala la extensión "dotenv":
- Abre Extensions (Cmd+Shift+X / Ctrl+Shift+X)
- Busca "dotenv" e instala la extensión
-
Asegúrate de tener
DATABASE_URLen tu.env(en la raíz del proyecto):DATABASE_URL=postgresql://de_user:de_password@localhost:15432/data_engineering
⚠️ Nota: Si cambiaste el puerto en tu.env, usa ese puerto en la URL -
En SQLTools, usa:
${env:DATABASE_URL}en el campo Connection String
💡 Nota: La extensión dotenv carga automáticamente las variables del
.enval iniciar VS Code/Cursor. Si no funciona, reinicia el editor.
Opción B: Usar campos individuales (alternativa)
Si prefieres no usar connection string, puedes usar campos individuales:
Connection name: PostgreSQL Local
Connect using: Server and Port
Server: localhost
Port: 15432 ⚠️ Si cambiaste el puerto en .env, usa ese puerto
Database: data_engineering ⚠️ IMPORTANTE: No uses "de_user" aquí
Username: de_user ⚠️ Este es el USUARIO, no la base de datos
Password: de_password
Después de guardar la conexión, necesitas conectarte:
-
Abre el panel de SQLTools:
- Abre Command Palette:
Cmd+Shift+P/Ctrl+Shift+P - Escribe:
View: Show SQLTools - O busca el ícono de SQLTools en la barra lateral izquierda
- Abre Command Palette:
-
Conecta a tu base de datos:
- En el panel de SQLTools, verás tu conexión "PostgreSQL Local"
- Click derecho en "PostgreSQL Local" → "Connect"
- O click en el ícono de conexión (⚡) junto al nombre
- Cuando esté conectado, verás un check verde ✅
-
Explora las tablas:
- Expande "PostgreSQL Local" → "data_engineering" → "public" → "Tables"
- Verás las tablas:
usuarios,productos,ventas - Puedes expandir cada tabla para ver sus columnas
Opción 1: Desde el panel de SQLTools
- Expande una tabla (ej:
usuarios) - Click derecho en la tabla → "Show Table Records" o "Select Top 1000 Rows"
- Los datos aparecerán en una nueva pestaña
Opción 2: Crear y ejecutar queries SQL
- Crea un archivo
.sql(ej:practica.sqlotest.sql) - Escribe tu query:
-- Ver usuarios SELECT * FROM usuarios LIMIT 5; -- Ver productos SELECT * FROM productos; -- Ver ventas SELECT * FROM ventas LIMIT 10;
- Ejecuta la query:
- Selecciona la query (o deja el cursor en ella)
- Click derecho → "Run Query" o "SQLTools: Run Selected Query"
- O desde Command Palette:
Cmd+Shift+P→ escribe "SQLTools: Run Selected Query"
Resultados:
- Los resultados aparecen en un panel debajo del editor o en una nueva pestaña
- Puedes ver múltiples resultados si ejecutas varias queries en el mismo archivo
- Puedes exportar los resultados a CSV, JSON, etc. desde el panel de resultados
Una vez conectado, prueba estas queries para familiarizarte:
-- 1. Ver todas las tablas disponibles
SELECT table_name
FROM information_schema.tables
WHERE table_schema = 'public';
-- 2. Ver estructura de una tabla
SELECT column_name, data_type
FROM information_schema.columns
WHERE table_name = 'usuarios';
-- 3. Ver datos de usuarios
SELECT * FROM usuarios;
-- 4. Contar registros
SELECT COUNT(*) AS total_usuarios FROM usuarios;
SELECT COUNT(*) AS total_productos FROM productos;
SELECT COUNT(*) AS total_ventas FROM ventas;- ✅ Todo en un editor: Código Python y SQL en el mismo lugar
- ✅ AI integrado: Puedes pedir ayuda a Cursor sobre SQL
- ✅ Versionado: Tus queries SQL están en Git junto con tu código
- ✅ Autocompletado con AI: Cursor puede sugerir queries basadas en contexto
💡 Tip con Cursor: Puedes pedir ayuda a la AI como:
@02_sql/sql-basico/01-select-y-where.md explica esta query y ayúdame a mejorarlapara obtener ayuda contextual.
Al finalizar esta sección, deberías poder:
- Consultar datos de una o más tablas
- Filtrar y ordenar resultados
- Agrupar y agregar datos
- Usar funciones básicas de SQL
Una vez dominado SQL básico, continúa con SQL Intermedio.