Saltar al contenido principal
Pgnautcomando de entrenamiento de flotaES

Fleet training command

Aprende PostgreSQL de verdad.
En tu navegador. Gratis.

Un servidor PostgreSQL 18 real, compilado a WebAssembly, corre dentro de esta pestaña. No se envía nada a ninguna parte, no hay cuenta, y cada lección tiene su propia base de datos desechable — así que puedes romper cosas a propósito. El camino no se detiene en los joins: pasa por window frames, CTEs recursivos, JSONB, upserts, query plans y PL/pgSQL.

empezar entrenamiento →0 / 96 objetivos cumplidos

Disponible ahora

  1. 01

    Adquisición de señal

    Saca filas de una tabla y dóblalas a tu voluntad.

    0/7

    Lo que vas a aprender

    • · Leer cualquier tabla con SELECT, WHERE, ORDER BY y LIMIT
    • · Razonar correctamente sobre NULL y la lógica de tres valores
    • · Filtrar por patrones de texto, rangos y pertenencia a un conjunto
  2. 02

    Instrumentos y unidades

    Texto, números, fechas y los casts que van de unos a otros.

    0/4

    Lo que vas a aprender

    • · Manipular texto con concatenación y las funciones de cadena estándar
    • · Truncar fechas e intervals, extraer sus campos y hacer aritmética con ellos
    • · Hacer casts de forma deliberada, y ramificar con CASE
  3. 03

    Estadísticas de la flota

    Colapsa muchas filas en un solo número — correctamente.

    0/5

    Lo que vas a aprender

    • · Agrupar filas y agregarlas con COUNT, SUM, AVG, MIN, MAX
    • · Filtrar grupos con HAVING y entender por qué no es lo mismo que WHERE
    • · Pivotar datos con cláusulas FILTER sobre las agregaciones
  4. 04

    Procedimientos de atraque

    Combina tablas sin perder las filas que querías conservar.

    0/5

    Lo que vas a aprender

    • · Usar joins INNER, LEFT, RIGHT, FULL y CROSS de forma deliberada
    • · Escribir self-joins y anti-joins
    • · Evitar la trampa de NOT IN / NULL y la de agregar después de un LEFT JOIN
  5. 05

    Transmisiones anidadas

    Queries dentro de queries, y el álgebra de conjuntos entre ellas.

    0/5

    Lo que vas a aprender

    • · Escribir subconsultas escalares, correlacionadas y con EXISTS
    • · Combinar conjuntos de resultados con UNION, INTERSECT y EXCEPT
    • · Usar DISTINCT ON y LATERAL para problemas por grupo
  6. 06

    Trazado de rutas

    Ponles nombre a tus resultados intermedios — y deja que se llamen a sí mismos.

    0/5

    Lo que vas a aprender

    • · Estructurar queries complejas con WITH
    • · Recorrer jerarquías y grafos con CTEs recursivos
    • · Generar series y controlar la profundidad de la recursión sin riesgo
  7. 07

    Ventanas de sensor

    Agrega sin colapsar filas — el capítulo que los cursos gratuitos se saltan.

    0/7

    Lo que vas a aprender

    • · Calcular agregados junto a las filas de detalle con OVER
    • · Particionar una window y rankear dentro de ella
    • · Alcanzar otras filas con LAG y LEAD
    • · Controlar el frame, y saber qué hace realmente el frame por defecto
    • · Nombrar una window una vez con WINDOW y reutilizarla en varias cláusulas OVER
    • · Elegir entre los modos de frame ROWS, RANGE y GROUPS
  8. 08

    Diseño del casco

    Schemas que hacen imposibles los datos malos.

    0/8

    Lo que vas a aprender

    • · Crear tablas con los tipos y las keys adecuados
    • · Imponer reglas con NOT NULL, CHECK y foreign keys
    • · Elegir las acciones referenciales de forma deliberada
    • · Derivar columnas con GENERATED ALWAYS AS
    • · Garantizar la unicidad con UNIQUE, sobre una columna o sobre varias, y saber cómo trata los nulls
    • · Repartir valores de key con GENERATED AS IDENTITY, y reparar una sequence que se ha quedado atrás
    • · Nombrar una regla una sola vez con CREATE DOMAIN y reutilizarla en cada columna que la necesite
    • · Modelar un conjunto cerrado y ordenado de etiquetas con CREATE TYPE ... AS ENUM, extenderlo con ALTER TYPE ... ADD VALUE, y reconocer el conjunto que en realidad pertenece a una tabla de lookup
  9. 09

    Reconocimiento de patrones

    Las formas analíticas que reaparecen en todo trabajo real.

    0/6

    Lo que vas a aprender

    • · Calcular running totals que se reinician, y expresarlos como una proporción
    • · Elegir una ventana móvil por tiempo en lugar de por número de filas
    • · Sacar las top N filas de cada grupo en una sola pasada
    • · Colapsar rachas consecutivas en islands, y encontrar los gaps entre ellas
    • · Reducir una tabla a una fila por clave, y nombrar las filas que borrarías
    • · Comparar un periodo con el anterior sin perder los periodos vacíos
  10. 10

    Manifiestos de carga

    Datos semiestructurados, de forma nativa.

    0/7

    Lo que vas a aprender

    • · Extraer valores JSONB como jsonb o como text, y saber cuál de los dos tienes
    • · Llegar a objetos anidados con los operadores de path
    • · Hacer preguntas de containment y de existencia con @> y ?
    • · Filtrar dentro del documento con jsonpath
    • · Trabajar con columnas array sin fingir que son strings
    • · Indexar JSONB y arrays con GIN, y confirmar que el plan lo usa
    • · Modelar un intervalo como un range semiabierto que encaja sin huecos, y detectar un choque con &&
    • · Convertir el no-solapamiento en una garantía de la base de datos con un exclusion constraint
  11. 11

    Escribiendo en el registro

    Cambiar los datos sin perder ninguno.

    0/6

    Lo que vas a aprender

    • · Insertar, actualizar y borrar filas deliberadamente
    • · Ver qué hizo una sentencia con RETURNING, en un solo viaje de ida y vuelta
    • · Resolver colisiones con ON CONFLICT y excluded
    • · Dirigir todo un conjunto de cambios desde un único MERGE
  12. 12

    Eficiencia del motor

    Pregúntale al planner qué va a hacer, y entiende la respuesta.

    0/6

    Lo que vas a aprender

    • · Leer un plan de EXPLAIN como un árbol de nodos
    • · Distinguir una estimación de una medición con EXPLAIN ANALYZE
    • · Reconocer los seq scans, index scans y bitmap heap scans, y saber cuándo toca cada uno
    • · Construir indexes btree, partial indexes y expression indexes, y comprobar que el planner los usa de verdad
    • · Refrescar las estadísticas con ANALYZE y leer las entradas crudas del planner desde pg_stats
  13. 13

    Protocolo de esclusa

    Las transacciones, y qué te compra de verdad el aislamiento.

    0/6

    Lo que vas a aprender

    • · Agrupar sentencias en una unidad de todo-o-nada con BEGIN, COMMIT y ROLLBACK
    • · Deshacer parte de una transacción con savepoints, sin perder el resto
    • · Nombrar las cuatro anomalías y decir qué isolation level descarta cuál
    • · Elegir un isolation level deliberadamente, y escribir el bucle de reintento que SERIALIZABLE exige
    • · Leer qué está haciendo un lock de fila, y saber por qué ocurren los deadlocks y cómo evitarlos
  14. 14

    Automatización de la nave

    Lógica que vive dentro de la base de datos.

    0/7

    Lo que vas a aprender

    • · Escribir funciones SQL que reciben argumentos y devuelven escalares o tablas enteras
    • · Marcar una función IMMUTABLE, STABLE o VOLATILE, y saber qué acabas de prometer
    • · Usar variables, IF/ELSIF y bucles de PL/pgSQL para expresar lo que SQL por sí solo no puede
    • · Construir un trigger de fila y una tabla de auditoría, y leer NEW y OLD dentro de él
    • · Capturar errores con EXCEPTION WHEN, ramificar según el SQLSTATE, y escribir el bucle de reintento que exige un serialization failure
  15. 15

    Postgres de verdad

    Las funcionalidades que son la razón para elegir Postgres.

    0/7

    Lo que vas a aprender

    • · Buscar en texto con tsvector, tsquery y el operador @@, y rankear los resultados
    • · Respaldar una full-text search con un index GIN sobre la expresión correcta
    • · Partir una tabla en range partitions y ver al planner saltarse las que no necesita
    • · Filtrar filas por role con row-level security, y demostrarlo con un role que no es superuser
    • · Hacer grant y revoke de privileges de tabla y de columna, e inspeccionarlos con has_table_privilege
    • · Averiguar qué trae de verdad un build concreto de Postgres
  16. 16

    Schema vivo

    Ponle nombre a una query y cambia una tabla que nadie te va a dejar tumbar.

    0/5

    Lo que vas a aprender

    • · Ponerle nombre a una query con CREATE VIEW, y saber cuándo eso gana a repetir un CTE
    • · Cerrar con WITH CHECK OPTION el agujero que deja abierto una view escribible
    • · Cambiar frescura por velocidad con una materialized view, y hacerle refresh a propósito
    • · Añadir una columna a una tabla viva y saber si la tabla se reescribió
    • · Ejecutar la migration de columna nullable, backfill y SET NOT NULL, y nombrar el lock de cada paso