Curso completo de SQL desde cero hasta nivel avanzado, diseñado para aprender PostgreSQL de forma práctica y progresiva.
Dominar SQL y PostgreSQL en 7 días mediante teoría, práctica guiada y ejercicios progresivos con datos reales y variados.
Cada día incluye:
- Teoría: Conceptos clave explicados
- Práctica: Archivos SQL separados por tema con ejemplos
- Ejercicios: 2 ejercicios completos con datos de prueba
- Soluciones: Respuestas detalladas de todos los ejercicios
- Conceptos clave: Base de datos, tablas, filas, columnas
- ¿Qué tipos de datos podemos almacenar en una base de datos?
- ¿Qué es un sistema gestor de base de datos?
- ¿Qué es SQL (Structured Query Language)?
- ¿Por qué es tan importante SQL en la programación? (Campos en los que se utiliza)
practica/01_instalacion_postgresql.sql- Instalación de PostgreSQLpractica/02_exploracion_sistema.sql- Exploramos el sistema gestor de PostgreSQL
ejercicios/ejercicio_01.sql- Exploración del Sistema PostgreSQLejercicios/ejercicio_02.sql- Comandos Básicos de Exploración
Tema: Biblioteca Municipal
practica/01_create_drop_table.sql- Cómo creamos una tabla desde cero (CREATE/DROP TABLE)practica/02_insert_into.sql- Cómo insertamos datos en una tabla (INSERT INTO)practica/03_select_from.sql- Cómo seleccionamos datos con SQL (SELECT FROM)practica/04_where_filtrado.sql- Cómo filtramos datos con SQL (WHERE, LIKE, BETWEEN, IN)practica/05_update_table.sql- Cómo actualizamos datos en una tabla (UPDATE TABLE WHERE)practica/06_delete_from.sql- Cómo borramos datos en una tabla (DELETE FROM WHERE)practica/07_comentarios.sql- Cómo ponemos comentarios en SQLpractica/08_limit.sql- Cómo limitamos los resultados de nuestras consultas (LIMIT)practica/09_alias.sql- Cómo renombramos columnas y tablas (ALIAS)practica/10_orden_logico.sql- Orden lógico de las consultas
- Filtrado de datos
- Operadores lógicos y de comparación (=, >, <, <>, LIKE, BETWEEN, IN)
- ¿Para qué sirven los comentarios en programación?
- ¿Por qué es importante limitar nuestras consultas?
- Hablemos de nombres y alias
- Orden lógico de las consultas
ejercicios/insert_data.sql- Datos para los ejerciciosejercicios/ejercicio_01.sql- Gestión de Productos de una Tiendaejercicios/ejercicio_02.sql- Sistema de Gestión de Empleadosejercicios/soluciones_ejercicio_01.sql- Soluciones ejercicio 1ejercicios/soluciones_ejercicio_02.sql- Soluciones ejercicio 2
Tema: Restaurante
practica/01_operaciones_fecha.sql- OPERACIONES DE FECHA (NOW, CURRENT_DATE, CURRENT_TIME, EXTRACT)practica/02_case_when.sql- CASE WHENpractica/03_order_by.sql- ORDER BYpractica/04_group_by_count.sql- GROUP BY COUNT (ERROR TÍPICO DE SELECT COLUMNAS SIN AGRUPAR)practica/05_having.sql- HAVING COUNTpractica/06_funciones_agregadas.sql- MAX, MIN, LENGTH, AVERAGEpractica/07_distinct.sql- DISTINCTpractica/08_manejo_nulos.sql- ¿Cómo manejamos los nulos? (IS NULL, COALESCE)
- ¿Por qué son importantes las fechas en análisis de datos?
- Ordenación de datos
- Funciones de agrupación
- Funciones agregadas
- ¿Qué son los valores nulos?
ejercicios/insert_data.sql- Datos para los ejerciciosejercicios/ejercicio_01.sql- Sistema de Gestión de Películasejercicios/ejercicio_02.sql- Sistema de Registro de Estudiantesejercicios/soluciones_ejercicio_01.sql- Soluciones ejercicio 1ejercicios/soluciones_ejercicio_02.sql- Soluciones ejercicio 2
Tema: Tienda de Videojuegos
practica/01_subconsultas.sql- SUBCONSULTASpractica/02_with_cte.sql- WITH AS (Common Table Expressions)practica/03_window_over.sql- WINDOW Y OVERpractica/04_row_number.sql- ROW_NUMBERpractica/05_dense_rank.sql- DENSE_RANKpractica/06_lead_lag.sql- LEAD Y LAGpractica/07_pivot.sql- PIVOT
- ¿Cómo encadenamos consultas?
- Funciones de ventana
- Row number vs dense rank
- Lead vs lag
- Transposición de tablas
ejercicios/insert_data.sql- Datos para los ejerciciosejercicios/ejercicio_01.sql- Sistema de Ventas Onlineejercicios/ejercicio_02.sql- Análisis de Rendimiento de Empleadosejercicios/soluciones_ejercicio_01.sql- Soluciones ejercicio 1ejercicios/soluciones_ejercicio_02.sql- Soluciones ejercicio 2
Tema: Plataforma de Streaming de Música
practica/01_primary_foreign_keys.sql- PRIMARY KEY y FOREIGN KEYpractica/02_constraints.sql- CONSTRAINTSpractica/03_relaciones_1_1.sql- RELACIONES 1-1practica/04_relaciones_1_n.sql- RELACIONES 1-Npractica/05_relaciones_n_n.sql- RELACIONES N-Npractica/06_joins.sql- LEFT, INNER, FULL JOINpractica/07_union.sql- UNION, UNION ALL
- Claves primarias y foráneas
- Restricciones de integridad
- Tipos de relaciones entre tablas
- Tipos de JOIN
ejercicios/insert_data.sql- Datos para los ejerciciosejercicios/ejercicio_01.sql- Sistema de Bibliotecaejercicios/ejercicio_02.sql- Sistema de Gestión Universitariaejercicios/soluciones_ejercicio_01.sql- Soluciones ejercicio 1ejercicios/soluciones_ejercicio_02.sql- Soluciones ejercicio 2
Tema: Sistema de Reservas de Hotel
practica/01_indices.sql- INDICESpractica/02_stored_procedures.sql- STORED PROCEDURESpractica/03_explain.sql- EXPLAINpractica/04_funciones.sql- Funciones personalizadasbbdd.py- CONEXIÓN A BBDD CON PYTHON
- Consultas SQL más rápidas
- SQL como lenguaje de programación
- Las entrañas de una consulta SQL
- Más allá de SQL
ejercicios/insert_data.sql- Datos para los ejerciciosejercicios/ejercicio_01.sql- Optimización de Base de Datos de Blogejercicios/ejercicio_02.sql- Sistema de Inventario Avanzadoejercicios/soluciones_ejercicio_01.sql- Soluciones ejercicio 1ejercicios/soluciones_ejercicio_02.sql- Soluciones ejercicio 2
Tema: Sistema de E-commerce
Proyecto integrador que combina todos los conocimientos adquiridos en los 6 días anteriores. Sistema completo de gestión de un juego RPG con jugadores, clanes, misiones, monstruos, equipamiento y recompensas.
- jugadores: Información de jugadores (nivel, experiencia, clan)
- clanes: Grupos de jugadores con líderes
- equipamientos: Armas, armaduras y accesorios
- recompensas: Premios por completar misiones
- monstruos: Enemigos con diferentes características
- misiones: Desafíos con recompensas
- Tablas de relación N-N: jugadores_misiones, jugadores_equipamientos, jugadores_recompensas
01.creacion_tablas.sql- Esquema completo de la base de datosinsert_data/- 9 archivos con datos de pruebaproyecto_final_ejercicios.sql- 70+ ejercicios integradores organizados en 7 seccionesproyecto_final_soluciones.sql- Soluciones completas y detalladas
- Consultas Básicas (10 ejercicios) - Día 2
- Operaciones Intermedias (10 ejercicios) - Día 3
- Operaciones Avanzadas (10 ejercicios) - Día 4
- Relaciones y JOINs (10 ejercicios) - Día 5
- Consultas Complejas Integradas (10 ejercicios) - Integración
- Optimización y Procedimientos (10 ejercicios) - Día 6
- Desafíos Finales (5 ejercicios avanzados) - Proyecto completo
- Relaciones 1-1, 1-N y N-N
- Más de 30 jugadores, 6 clanes, 30 misiones
- Datos realistas de un juego RPG
- Ejercicios progresivos de dificultad
- Casos de uso del mundo real
Tema: Sistema de Juego RPG (Proyecto Integrador)
Sigue las instrucciones en Dia 01/practica/01_instalacion_postgresql.sql
Para cada día:
- Lee la teoría correspondiente
- Ejecuta los archivos de práctica en orden
- Carga los datos de ejercicios:
ejercicios/insert_data.sql - Intenta resolver los ejercicios por tu cuenta
- Compara tus soluciones con las proporcionadas
# Conectar a PostgreSQL
psql -U postgres
# Ejecutar un archivo
\i ruta/al/archivo.sql
# O desde la terminal
psql -U postgres -f ruta/al/archivo.sql# Instalar dependencias
pip install psycopg2
# Ejecutar el script
python "Dia 06/bbdd.py"Cada día utiliza datos diferentes y temáticas variadas:
- Día 1: Biblioteca Municipal
- Día 2: Restaurante
- Día 3: Tienda de Videojuegos
- Día 4: Plataforma de Streaming de Música
- Día 5: Sistema de Reservas de Hotel
- Día 6: Sistema de E-commerce
- Día 7: Sistema de Juego RPG (Proyecto Final)
- Conocimientos básicos de informática
- Ganas de aprender
- PostgreSQL instalado (se explica en el Día 1)
- Practica cada día: No avances sin dominar el contenido anterior
- Experimenta: Modifica las consultas y observa los resultados
- Toma notas: Documenta lo que aprendes
- Resuelve los ejercicios: La práctica es fundamental
- Consulta las soluciones: Pero solo después de intentarlo
- psql: Cliente de línea de comandos (incluido con PostgreSQL)
- pgAdmin: Interfaz gráfica para PostgreSQL
- DBeaver: Cliente universal de bases de datos
- VS Code: Con extensión PostgreSQL
Curso-SQL-7-Dias/
├── README.md
├── Dia 01/
│ ├── practica/
│ │ ├── 01_instalacion_postgresql.sql
│ │ └── 02_exploracion_sistema.sql
│ └── ejercicios/
│ ├── ejercicio_01.sql
│ └── ejercicio_02.sql
├── Dia 02/
│ ├── practica/
│ │ ├── 01_create_drop_table.sql
│ │ ├── 02_insert_into.sql
│ │ └── ... (10 archivos)
│ └── ejercicios/
│ ├── insert_data.sql
│ ├── ejercicio_01.sql
│ ├── ejercicio_02.sql
│ ├── soluciones_ejercicio_01.sql
│ └── soluciones_ejercicio_02.sql
├── Dia 03/ ... Dia 06/
│ └── (misma estructura)
└── Dia 07/
├── 01.creacion_tablas.sql
├── insert_data/
│ ├── 01.jugadores.sql
│ ├── 02.clanes.sql
│ └── ... (9 archivos)
├── proyecto_final_ejercicios.sql
└── proyecto_final_soluciones.sql
Este es un curso educativo. Si encuentras errores o tienes sugerencias, no dudes en contribuir.
Material educativo de libre uso para aprendizaje personal.
✅ Progresión gradual de dificultad
✅ Ejemplos prácticos con datos reales
✅ Ejercicios con soluciones detalladas
✅ Datos variados para mantener el interés
✅ Enfoque en PostgreSQL
✅ Incluye conexión con Python
✅ Optimización y buenas prácticas
¡Buena suerte en tu aprendizaje de SQL! 🚀