getting-started

Tables, Rows, and Columns

The 4 core terms every SQL conversation uses — and what NULL really means.

Tables, Rows, and Columns

Four vocabulary words. After these, every SQL tutorial will feel approachable.

The mental model — it's a spreadsheet

A SQL table looks exactly like a spreadsheet. The terms are just more precise.

idnameemailsignup_date
1Anita Raoanita@example.com2025-08-12
2Bob Linbob@example.com2025-09-01
3Cara Patelcara@example.comNULL

Three concepts visible here:

TermWhat it isIn the example
TableThe whole gridThe 3-row block above
ColumnA vertical categoryid, name, email, signup_date
Row (also called a "record")One horizontal entryThe line 2 / Bob Lin / bob@example.com / 2025-09-01
FieldOne specific cellbob@example.com (Bob's email field)

You'll hear "row" and "record" used interchangeably. Same thing.

The fourth concept — NULL

Look at the signup_date for Cara Patel above. It says NULL.

NULL means "no value" — explicitly the absence of data.

It is NOT:

  • ❌ The number zero (0)
  • ❌ An empty string ("")
  • ❌ A space (" ")

It's a distinct thing meaning "this field has no value at all."

Why does NULL matter?

SELECT * FROM users WHERE signup_date = NULL;     -- ⚠️ Returns NOTHING
SELECT * FROM users WHERE signup_date IS NULL;    -- ✅ Returns Cara's row

You can't use = with NULL. SQL requires IS NULL or IS NOT NULL specifically. This trips up almost every beginner. Remember the rule:

NULL is not equal to anything — not even itself. Use IS NULL / IS NOT NULL.

Why all this matters

When you write a query like:

SELECT name FROM users WHERE signup_date IS NOT NULL;

You're saying:

  • "From the users table"
  • "give me the name column"
  • "for every row where the signup_date field has an actual value (not NULL)"

That's the entire mental model. Every SQL query, no matter how complex, decomposes into operations on tables, rows, columns, and fields.

Quick reference

You want to...The SQL operates on...
Get certain usersrows (filtered)
Get certain info about userscolumns (selected)
Add a new usera row (inserted)
Add a new piece of info to every usera column (added)
Change one user's emaila field (updated)

See it for yourself

Everything above is easier to believe once you have run it. This is a real employees table in a sandboxed database — press Run.

SQL
SELECT emp_id, first_name, last_name, salary
FROM employees
ORDER BY emp_id
LIMIT 5;

Five rows, four columns, and each cell is a field.

And here is a NULL

One employee has no salary recorded. Notice the result says NULL rather than showing an empty space — that difference matters, and the next lesson explains why an empty string and a NULL are not the same thing.

SQL
SELECT first_name, last_name, salary
FROM employees
WHERE salary IS NULL;

= NULL would return nothing at all here. NULL is not a value you can compare with =; it means unknown, and only IS NULL tests for it.

What's next

In the final lesson of this module, SQL Command Categories, we'll group the SQL verbs you'll use into four families — DDL, DML, DCL, DQL — so you know which category a command belongs to without having to memorize anything.

Tables, Rows, and Columns — SQL Mastery — From Zero to Joins