# SELECT Query Structure

A SELECT statement is built from clauses that always appear in the same order; this chapter uses SELECT, FROM, WHERE and ORDER BY.

Novice · T-SQL · SQL · Updated November 3, 2026

## After this lesson you can

- Put the clauses of a SELECT statement in the right order

## Key takeaways

- A `SELECT` is built from clauses that must appear in a fixed order: in this chapter, `SELECT`, `FROM`, `WHERE`, then `ORDER BY`.
- Every clause is optional except `SELECT` itself.
- Keywords aren't case-sensitive and line breaks don't matter, but capital keywords and one clause per line make a query easier to read.
- A semicolon `;` ends a statement, and writing it is a good habit.
- T-SQL limits rows with `TOP`, while MySQL and PostgreSQL use `LIMIT`, so check which database an answer on the web is written for.

A `SELECT` statement is built from **clauses**: a keyword followed by what it applies to. The SQL standard fixes which clauses there are and the order they must appear in. You'll learn them a few at a time; here's the whole shape, so you can see where each one fits:

```sql
SELECT TOP (<how many rows>) <columns>
FROM <table>
JOIN <another table> ON <matching columns>
WHERE <which rows>
GROUP BY <columns to group by>
HAVING <which groups>
ORDER BY <columns to sort by>
```

Every clause is optional except `SELECT` itself, but the ones you use must appear in this order. In this chapter you'll use four of them:

| Clause | What it does |
|---|---|
| `SELECT` | Chooses the columns, or calculated values, to return. `TOP` limits how many rows. |
| `FROM` | Names the table the rows come from |
| `WHERE` | Keeps only the rows that match a condition |
| `ORDER BY` | Sorts the result |

`JOIN`, `GROUP BY` and `HAVING` come in Module 2.

## A few rules of style

```sql
SELECT ProductName, UnitPrice
FROM Products
WHERE UnitPrice > 50
ORDER BY UnitPrice DESC;
```

- **Keywords aren't case-sensitive.** `select` works as well as `SELECT`, but writing keywords in capitals makes queries easier to read, and it's the common style.
- **Line breaks don't matter to SQL.** Putting each clause on its own line is for people.
- **A semicolon ends a statement.** In a window with one query you can leave it off, but it's a good habit.

## Other databases, other words

Most SQL works in any database, but each has a few words of its own. T-SQL limits rows with `TOP`; MySQL and PostgreSQL use `LIMIT` at the end of the query instead. If you search the web for SQL help, check which database an answer is written for.

## Check yourself

1 question to try on the lesson page.

## So what

Knowing the order of the clauses lets you read any query at a glance, and write your own without guessing where each part goes.

## Key terms

- [Clause](https://www.ask-codey.com/glossary/clause)
- [SQL Statement](https://www.ask-codey.com/glossary/sql-statement)
- [FROM](https://www.ask-codey.com/glossary/from)

## Cheat sheets

- [SELECT Query Structure](https://www.ask-codey.com/cheat-sheets/select-in-t-sql-select-query-structure-cheat-sheet)

Source: https://www.ask-codey.com/lessons/select-in-t-sql-select-query-structure
