Tema
PostgreSQL
PostgreSQL (o simplemente "Postgres") es la base de datos relacional de código abierto más avanzada del mundo, y en los últimos años se ha convertido en la favorita de los desarrolladores. Es la base de servicios como Supabase y Neon, la opción por defecto en frameworks como Django y Rails, y una de las más usadas con Node.js, Prisma y Next.js.
Postgres destaca por su apego al estándar SQL, su robustez y sus funciones avanzadas: tipos JSONB para guardar documentos con índices, arrays, UUID, enums, búsqueda de texto completo en español, funciones en PL/pgSQL, índices parciales y de expresión, seguridad a nivel de fila y un ecosistema de extensiones enorme (PostGIS para mapas, pgvector para IA, y muchas más).
Este curso parte de que ya conoces SQL (si no, empieza por el curso de SQL) y se enfoca en lo que hace especial a PostgreSQL y en cómo usarlo en proyectos reales: instalación, administración, tipos avanzados, rendimiento, respaldos, conexión desde Node y PHP, y despliegue en la nube.
Qué vas a poder hacer al terminar
- Instalar PostgreSQL y manejarlo con
psql, pgAdmin o DBeaver. - Organizar bases de datos con esquemas y roles con permisos precisos.
- Usar JSONB, arrays, UUID, enums y tipos de fecha con zona horaria.
- Elegir entre SERIAL e IDENTITY y generar claves correctamente.
- Programar funciones, procedimientos y triggers con PL/pgSQL.
- Acelerar consultas con índices GIN, parciales y de expresión, y leer
EXPLAIN ANALYZE. - Construir un buscador en español con búsqueda de texto completo.
- Respaldar y restaurar con
pg_dumpypg_restore. - Conectarte desde Node (pg y Prisma) y PHP (PDO).
- Desplegar tu base en Supabase o Neon.
Requisitos previos
- SQL desde cero, al menos hasta JOINs, agregaciones y transacciones.
- Uso básico de la terminal (Fundamentos).
- Para las lecciones de conexión: Node.js o PHP.
Temario
- ¿Qué es PostgreSQL? — Características y diferencias con MySQL.
- Instalación, psql y pgAdmin — Windows, Linux, macOS, Docker y clientes.
- Esquemas y roles — Organización, permisos y Row Level Security.
- Tipos avanzados — JSONB, arrays, UUID, enums y TIMESTAMPTZ.
- SERIAL vs IDENTITY — Secuencias, IDENTITY, RETURNING y UUID como PK.
- Funciones y PL/pgSQL — Funciones, procedimientos y triggers.
- Índices avanzados — GIN, parciales, de expresión, EXPLAIN y VACUUM.
- Búsqueda de texto completo — tsvector, ranking, unaccent y pg_trgm.
- Respaldos con pg_dump — pg_dump, pg_restore, cron y \copy.
- Conexión desde Node y PHP — node-postgres, Prisma y PDO.
- PostgreSQL en la nube — Supabase, Neon y proyecto de despliegue.