<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/introducing-yesql-practical-postgresql-one-concept-at-a-time-0hjavfxxa" -->

---
title: Introducing YeSQL: Practical PostgreSQL, One Concept at...
description: YeSQL is a new free set of 24 short, runnable PostgreSQL lessons covering SQL foundations, window functions, aggregation, joins, performance, and schema...
canonical: https://daily.dev/posts/introducing-yesql-practical-postgresql-one-concept-at-a-time-0hjavfxxa
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Introducing YeSQL: Practical PostgreSQL, One Concept at a Time | daily.dev
og:description: YeSQL is a new free set of 24 short, runnable PostgreSQL lessons covering SQL foundations, window functions, aggregation, joins, performance, and schema...
og:url: https://daily.dev/posts/introducing-yesql-practical-postgresql-one-concept-at-a-time-0hjavfxxa
og:image: https://api.daily.dev/og/posts/0hJAVFxXa.png
og:image:alt: Introducing YeSQL: Practical PostgreSQL, One Concept at a Time
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Introducing YeSQL: Practical PostgreSQL, One Concept at a Time

**[Planet PostgreSQL](https://daily.dev/sources/planet-postgresql)** · 7 min read · 0 upvotes · 0 comments

## Summary

YeSQL is a new free set of 24 short, runnable PostgreSQL lessons covering SQL foundations, window functions, aggregation, joins, performance, and schema design. Each lesson pairs one concept with an editable, executable query running against real datasets (Formula 1, Chinook, and a custom 'magic' dataset) via PGlite, which runs Postgres compiled to WebAssembly directly in the browser with no signup or server round-trip. It serves as a prototype for making every query in the author's book, The Art of PostgreSQL, runnable inline. The piece also surveys similar PGlite-powered learning tools (Learn PSG, PSQLab, Codapi) and points to a companion Docker-based lab repo with a full local Postgres instance and EXPLAIN visualization.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://postgr.es/p/9sB>

## Questions this post answers

### What is PGlite and how does it let me run PostgreSQL queries in the browser without a server?

PGlite is PostgreSQL compiled to WebAssembly, letting queries execute locally inside a browser tab with no signup and no server round-trip. It powers interactive lessons that run against real relational datasets, such as an f1db Formula 1 dataset and a chinook music-store dataset, so learners can edit and rerun queries instantly against real data instead of placeholder rows.

_Developers exploring in-browser database tooling like PGlite can track similar experiments on daily.dev._

### What topics does YeSQL's free PostgreSQL lesson series cover?

YeSQL offers 24 short lessons split across six areas: SQL Foundations (9 lessons on relations, NULL semantics, GROUP BY, anomalies), Window Functions (5 lessons on OVER, ROW_NUMBER, RANK, running totals, frame semantics), Aggregation (3 lessons on FILTER and percentiles), Joins & Relations (4 lessons including LATERAL joins and WITH RECURSIVE), Performance (3 lessons on EXPLAIN and indexing), and Data & Schema Design (3 lessons on constraints, JSON types, and range types).

_Anyone building up SQL and PostgreSQL skills can find lesson breakdowns like this through daily.dev._

### How does YeSQL compare to PGExercises for learning SQL?

PGExercises is exercise-first, giving a question and schema against one consistent fictional-country-club dataset built over a decade, while YeSQL is concept-first, pairing one idea with an explained, runnable query. They complement each other: PGExercises tests existing SQL knowledge, while YeSQL is better for picking up concepts not yet learned, particularly window functions and schema design.

_Developers weighing SQL learning resources can compare approaches like this via daily.dev._

## Similar posts on daily.dev

- [Just Use Postgres\!](https://daily.dev/posts/just-use-postgres--c90ppdw4c) · Vlad Mihalcea · 255 upvotes · 24 comments
- [TimescaleDB Course – PostgreSQL for Time-Series Data](https://daily.dev/posts/timescaledb-course-postgresql-for-time-series-data-krsoyisi9) · freeCodeCamp · 35 upvotes · 0 comments
- [9 Advanced PostgreSQL Features I Wish I Knew Sooner](https://daily.dev/posts/9-advanced-postgresql-features-i-wish-i-knew-sooner-nezidnbnu) · marmelab · 115 upvotes · 0 comments

---

Tags: [#sql](https://daily.dev/tags/sql), [#postgresql](https://daily.dev/tags/postgresql), [#webassembly](https://daily.dev/tags/webassembly)

[View this post on daily.dev](https://daily.dev/posts/introducing-yesql-practical-postgresql-one-concept-at-a-time-0hjavfxxa)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Introducing YeSQL: Practical PostgreSQL, One Concept at a Time","url":"https://daily.dev/posts/introducing-yesql-practical-postgresql-one-concept-at-a-time-0hjavfxxa","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/introducing-yesql-practical-postgresql-one-concept-at-a-time-0hjavfxxa"},"datePublished":"2026-08-18T11:33:46.409Z","dateModified":"2026-09-14T07:31:10.126Z","description":"YeSQL is a new free set of 24 short, runnable PostgreSQL lessons covering SQL foundations, window functions, aggregation, joins, performance, and schema...","image":"https://media.daily.dev/image/upload/s--2-1xRawN--/f_auto/v1722860399/public/Placeholder%2011","thumbnailUrl":"https://media.daily.dev/image/upload/s--2-1xRawN--/f_auto/v1722860399/public/Placeholder%2011","isAccessibleForFree":true,"articleSection":"Planet PostgreSQL","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Planet PostgreSQL","logo":"https://media.daily.dev/image/upload/logos/placeholder.jpg","url":"https://daily.dev/sources/planet-postgresql"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/introducing-yesql-practical-postgresql-one-concept-at-a-time-0hjavfxxa","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"sql,postgresql,webassembly","timeRequired":"PT7M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Planet PostgreSQL","item":"https://daily.dev/sources/planet-postgresql"},{"@type":"ListItem","position":3,"name":"Introducing YeSQL: Practical PostgreSQL, One Concept at a Time"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/introducing-yesql-practical-postgresql-one-concept-at-a-time-0hjavfxxa#faq","mainEntity":[{"@type":"Question","name":"What is PGlite and how does it let me run PostgreSQL queries in the browser without a server?","acceptedAnswer":{"@type":"Answer","text":"PGlite is PostgreSQL compiled to WebAssembly, letting queries execute locally inside a browser tab with no signup and no server round-trip. It powers interactive lessons that run against real relational datasets, such as an f1db Formula 1 dataset and a chinook music-store dataset, so learners can edit and rerun queries instantly against real data instead of placeholder rows. Developers exploring in-browser database tooling like PGlite can track similar experiments on daily.dev."}},{"@type":"Question","name":"What topics does YeSQL's free PostgreSQL lesson series cover?","acceptedAnswer":{"@type":"Answer","text":"YeSQL offers 24 short lessons split across six areas: SQL Foundations (9 lessons on relations, NULL semantics, GROUP BY, anomalies), Window Functions (5 lessons on OVER, ROW_NUMBER, RANK, running totals, frame semantics), Aggregation (3 lessons on FILTER and percentiles), Joins & Relations (4 lessons including LATERAL joins and WITH RECURSIVE), Performance (3 lessons on EXPLAIN and indexing), and Data & Schema Design (3 lessons on constraints, JSON types, and range types). Anyone building up SQL and PostgreSQL skills can find lesson breakdowns like this through daily.dev."}},{"@type":"Question","name":"How does YeSQL compare to PGExercises for learning SQL?","acceptedAnswer":{"@type":"Answer","text":"PGExercises is exercise-first, giving a question and schema against one consistent fictional-country-club dataset built over a decade, while YeSQL is concept-first, pairing one idea with an explained, runnable query. They complement each other: PGExercises tests existing SQL knowledge, while YeSQL is better for picking up concepts not yet learned, particularly window functions and schema design. Developers weighing SQL learning resources can compare approaches like this via daily.dev."}}]}
```

