Database Viewer

Browse the SQL that builds any database used across the lessons, without running it.

Loaded: Lesson 5 database ยท advanced-indexes.database-init

CREATE TABLE orders (
  id SERIAL PRIMARY KEY,
  order_number TEXT NOT NULL,
  status TEXT NOT NULL,
  created_at TIMESTAMP NOT NULL,
  total_cents INTEGER NOT NULL
);

CREATE INDEX orders_status_idx ON orders (status);
CREATE INDEX orders_status_created_at_idx ON orders (status, created_at DESC);
CREATE INDEX orders_failed_order_number_idx ON orders (order_number)
WHERE status = 'failed';


INSERT INTO orders (order_number, status, created_at, total_cents)
SELECT
  'ORD-' || value,
  CASE
    WHEN value % 100 = 0 THEN 'failed'
    WHEN value % 10 = 0 THEN 'pending'
    ELSE 'paid'
  END,
  TIMESTAMP '2026-01-01 00:00:00' + (value || ' minutes')::interval,
  1000 + value
FROM generate_series(1, 12000) AS value;

ANALYZE orders;