💿 SQL — Learn From Zero

Playground: DB Fiddle | SQLite Online — click, type, run.

What is SQL?

SQL is the language of databases. It queries, inserts, and manages data in relational systems (PostgreSQL, MySQL, SQLite).

  • Backend data storage
  • Analytics & reporting
  • Data engineering
  • Almost every app's backend

Run Online — No Install

Use the playground links above.

🟢 Beginner — Core Basics

Your First Query

sql
SELECT "Hello, world!" AS greeting;

A query returns a result set.

SELECT & WHERE

sql
SELECT name, age
FROM users
WHERE age >= 18;

Filter rows with WHERE.

INSERT

sql
INSERT INTO users (name, age)
VALUES ('Ada', 36);

Add new rows.

UPDATE & DELETE

sql
DELETE FROM users
WHERE age < 0;

Modify or remove rows carefully.

ORDER & LIMIT

sql
SELECT * FROM users
ORDER BY age DESC
LIMIT 10;

Sort and restrict results.

Aggregates

sql
SELECT COUNT(*), AVG(age)
FROM users;

Compute across rows.

🟡 Intermediate — Building Real Programs

JOINs

sql
SELECT u.name, o.total
FROM users u
JOIN orders o ON o.user_id = u.id;

Combine tables by key.

GROUP BY

sql
SELECT country, COUNT(*)
FROM users
GROUP BY country;

Aggregate per group.

Subqueries

sql
SELECT name FROM users
WHERE age > (SELECT AVG(age) FROM users);

Queries inside queries.

CTEs

sql
WITH adults AS (
  SELECT * FROM users WHERE age >= 18
)
SELECT COUNT(*) FROM adults;

Readable temporary result sets.

Indexes

sql
CREATE INDEX idx_users_age
ON users(age);

Speed up lookups.

🔴 Advanced — Pro Concepts

Transactions

sql
BEGIN;
UPDATE accounts SET bal = bal - 10 WHERE id = 1;
UPDATE accounts SET bal = bal + 10 WHERE id = 2;
COMMIT;

Atomic multi-step changes.

Window Functions

sql
SELECT name,
  RANK() OVER (ORDER BY age DESC) AS r
FROM users;

Compute across rows without grouping.

Views

sql
CREATE VIEW v_adults AS
SELECT * FROM users WHERE age >= 18;

Reusable virtual tables.

JSON Support

sql
SELECT data->>'name'
FROM events
WHERE data->>'type' = 'click';

Query JSON columns.

What's Next?

  • Build a tiny project: Calculator, To-Do App, Weather Widget
  • Read the official docs and a good book
  • Solve Exercism exercises
  • Join a community & share your code

Practice daily for 20 minutes. Consistency > intensity.