Skip to content
New this month 24 fresh C++, C#, F#, JavaScript, TypeScript and Lua courses just landed. Browse new releases Use code WELCOME10 for 10% off your first order · 14-day refund
Data & Databases Beginner Save 36%

SQL From Zero: Query Real Data With Confidence

Write joins, aggregates and filters you can defend, starting from a completely blank slate.

Rated 5.0 out of 5 from 2 reviews 26 students

SN Created by Sofia Navarro

  • Last updated August 2026
  • English
  • 4h 10m of material
  • 31 lessons

What you will learn

7 concrete outcomes

Every bullet below is something you will have built, shipped or be able to explain by the time you finish the last lesson.

  • Select, filter, sort and limit with confidence on messy real data
  • Group and aggregate, and explain why HAVING exists alongside WHERE
  • Understand every join type as a picture of which rows survive
  • Handle nulls correctly in comparisons, aggregates and joins
  • Spot row duplication caused by an unexpected one-to-many relationship
  • Work with dates, intervals and timezones without silent errors
  • Verify a result with counting checks before anyone acts on it

Course curriculum

5 modules · 31 lessons · 4h 10m of material

6 lessons running 46m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

6 lessons running 50m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

7 lessons running 54m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

6 lessons running 52m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

6 lessons running 48m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

5 modules · 31 lessons

4h 10m total length

Requirements

Short list, and deliberately so. If you meet these you can start today.

  • No database experience at all is required
  • Docker installed, or willingness to use the provided hosted database

About this course

SQL is the most durable skill in this catalog. Frameworks come and go, but a developer who can ask a database a precise question and trust the answer stays valuable for a very long time. This course takes you from never having written a query to being genuinely useful with one.

Everything happens against a realistic dataset: an online store with customers, orders, items, refunds and a support log, deliberately containing the mess that real data has, including nulls in awkward places, duplicated addresses and orders with no items at all. You run every query yourself in PostgreSQL, provided as a one-command Docker Compose setup or as a hosted option if you prefer not to install anything.

You build up in the order that makes joins finally click. Selecting and filtering, then sorting and limiting, then grouping and aggregation with a proper explanation of why HAVING exists and WHERE cannot do its job. Then joins, taught as a picture of which rows survive, with inner, left, right and full worked through on small tables you can count by hand before scaling up.

The last part covers the things beginners get wrong and never find out about: nulls in comparisons and aggregates, duplicated rows from an unexpected one-to-many join, date and timezone handling, and the sanity checks that catch a wrong number before someone builds a decision on it.

Frequently asked questions

Still unsure about something? Write to misteryjj100@gmail.com and a human answers, usually the same working day.

PostgreSQL, provided as a Docker Compose file with the dataset preloaded. Notes cover MySQL and SQLite differences where the syntax diverges.

Yes. Ninety exercises with solutions and explanations of why the obvious wrong answer is wrong, plus a final challenge set against the same dataset.

It covers the fundamentals every interview touches. The window functions course is the natural next step for the harder questions you will be asked.

Checkout is handled on our provider's secure payment page. The moment your payment clears we email your personal access link and access code to the address you used at checkout, and the same link appears in your account library. There is nothing to install and nothing to wait for.

Email misteryjj100@gmail.com within 14 days of your purchase, quote your order number, and we refund the full amount to your original payment method. No form to fill in and no questions about how much of the course you watched.

What students say

Reviews are written by people who bought this course. We publish the critical ones too.

5.0

Rated 5.0 out of 5

Course rating · 2 reviews

Rating distribution

  • 5 stars 100%
  • 4 stars 0%
  • 3 stars 0%
  • 2 stars 0%
  • 1 star 0%
  • BO

    Beatrice Okafor

    Business analyst

    Feb 2026
    Rated 5.0 out of 5

    Joins as surviving rows

    Venn diagrams never helped me once. Thinking about which rows survive the condition did, immediately, and I got a left join right first time straight afterwards having been wrong about them for years.
  • AL

    Andrei Lupu

    Data analyst

    Oct 2025
    Rated 5.0 out of 5

    The nulls chapter should be mandatory

    Nobody had ever warned me that NOT IN with a null hiding in the subquery silently returns nothing at all. This does, with a worked example, and then shows you the sanity check that catches it. Without that one chapter I would have published a wrong number last month.

Your instructor

SN

Sofia Navarro

Python and data engineer

  • 231 students taught
  • 11 courses published
  • 4.5 instructor rating
  • Python
  • SQL
  • PostgreSQL
  • Data engineering

Sofia builds the pipelines that keep analytics teams honest, mostly Python on top of PostgreSQL under uncomfortable load. She teaches schema design, indexing and query planning against anonymised production datasets rather than toy tables, then wires the same data into pandas so the SQL and the Python halves stop being separate skills. Expect to spend real time reading execution plans and rather less time reading slides. She consults on migrations for teams that cannot afford downtime.

$25 USD $39 Discounted from $39. You save 36 percent.

One-time payment · lifetime access

The WisdomCharms dispatch

One useful email a week. No fluff, no spam.

New course releases, discount codes before anyone else, and a short, practical breakdown of one technique — a prompt pattern, a C++ idiom, a TypeScript trick — that you can use the same day.

  • Subscriber-only launch pricing
  • Unsubscribe in one click
  • We never sell your address

By subscribing you agree to our Privacy Policy. Questions? Write to misteryjj100@gmail.com.