💿 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.