Back

Beginner · 12 min

Tables, rows, and columns

Read selected fields from a table and identify rows with keys.

Sample database

CREATE TABLE groups (id INTEGER PRIMARY KEY, label TEXT NOT NULL);
CREATE TABLE members (id INTEGER PRIMARY KEY, name TEXT NOT NULL, city TEXT, group_id INTEGER REFERENCES groups(id));
CREATE TABLE sessions (id INTEGER PRIMARY KEY, member_id INTEGER NOT NULL REFERENCES members(id), topic TEXT NOT NULL, minutes INTEGER NOT NULL CHECK(minutes > 0), completed INTEGER NOT NULL CHECK(completed IN (0, 1)), day TEXT NOT NULL);
INSERT INTO groups VALUES (1, 'Morning'), (2, 'Evening');
INSERT INTO members VALUES (1, 'Ada', 'Oslo', 1), (2, 'Bo', 'Rome', 1), (3, 'Cy', NULL, 2), (4, 'Dee', 'Oslo', 2);
INSERT INTO sessions VALUES
  (1, 1, 'Travel', 20, 1, '2026-01-01'),
  (2, 1, 'Food', 10, 0, '2026-01-02'),
  (3, 2, 'Travel', 30, 1, '2026-01-01'),
  (4, 2, 'Music', 15, 1, '2026-01-03'),
  (5, 3, 'Music', 25, 0, '2026-01-02'),
  (6, 3, 'Travel', 15, 1, '2026-01-04');

Select the fields you need

A table stores rows with named columns. Selecting explicit columns keeps the result focused and its shape predictable. The sample members table has a unique primary key for each member. ORDER BY makes the displayed row order explicit.

SELECT id, name FROM members ORDER BY id;

Output

id | name
1 | Ada
2 | Bo
3 | Cy
4 | Dee

Read one identified row

A primary key distinguishes a row even when names repeat. WHERE restricts which rows are returned. A query without ORDER BY does not promise any particular order when it returns multiple rows.

SELECT name, city FROM members WHERE id = 2;

Output

name | city
Bo | Rome

Put it into practice

  1. Read the sample tables and predict the result before running the query.
  2. Solve the task, compare the returned rows, and explain why the solution works.

Try it yourself

Code runs on this device. When you are signed in, drafts sync to your account.

Run queries on a fresh sample database. Table changes last for this run only; your query draft is saved separately. Results show column names followed by rows. NULL means a missing value.

Apply what you learned

Return the name and city of member 1, in that column order.

Show solution
SELECT name, city FROM members WHERE id = 1;

The key selects Ada and the two named columns determine the result shape.

Practice