← Back to articles

SQL is structured English: the fastest way to learn how to query data

By Fernando Nagao Douverny · June 24, 2026 · 2 min read

fundamentalsbeginner

Most SQL content teaches syntax. “SELECT pulls columns, WHERE filters, JOIN joins tables.” It works — but it treats SQL as a strange language you have to memorize.

This article starts from a different idea:

SQL is structured English. If you can ask the question out loud, you can write the query.

Every SQL keyword is just one vocabulary word that unlocks a new kind of question. With about 9 words, you can answer 80% of the business questions that show up in the day-to-day work of anyone who deals with data.

The shop we’ll use in the examples

So we don’t stay abstract, picture the Corner Shop, a neighborhood e-commerce store. The owner, Joe, asks questions every week — and each question becomes a query.

The shop has three tables:

  • customers — who buys (id, name, city, state)
  • products — what it sells (id, name, category, price)
  • orders — each sale (id, customer, product, date, amount)

“Show me” → SELECT + FROM

Joe asks: “Show me my customers’ names.”

Notice the sentence already has everything: what you want to see (the names) and where from (the customers).

SELECT name
FROM customers

SELECT is the “show me”. FROM is the “where from”. That’s it.

”Only the ones that…” → WHERE

“Show me the customers, only the ones from São Paulo.”

The “only the ones that” is a filter. In SQL it’s called WHERE:

SELECT name
FROM customers
WHERE state = 'SP'

You didn’t memorize anything. You translated the sentence.

”In order, and only the first ones” → ORDER BY + LIMIT

“Show me the orders, from the highest amount to the lowest, only the first 5.”

SELECT order_id, amount
FROM orders
ORDER BY amount DESC
LIMIT 5

ORDER BY is the “in order”. DESC is “highest to lowest”. LIMIT is “only the first ones”.

”Grouped by…” → GROUP BY

“How much has each customer spent in total?”

Whenever you hear “per customer”, “per category”, “per month” — that’s GROUP BY:

SELECT customer_id, SUM(amount) AS total_spent
FROM orders
GROUP BY customer_id

SUM adds up, GROUP BY says who to add up for. “Total spent per customer” comes out almost exactly like the sentence.

The rule that always holds

Before you open the editor, say the question out loud, in plain English. The query is just that sentence rearranged:

  1. What to show → SELECT
  2. Where from → FROM
  3. Only the ones that → WHERE
  4. Who to group by → GROUP BY
  5. In what order → ORDER BY

Memorizing syntax gives you one query. Translating the question gives you every query.


This is just the start. In the next articles we’ll unlock one word at a time — JOIN, HAVING, window functions — always starting from a real business question from Joe.

Get the free ebook: SQL is English

9 SQL words that answer 80% of business questions. Straight to your inbox.

No spam. Just SQL and data content.