# Pengenalan SQL

Kenali apa itu SQL, kategori perintahnya, dan bangun skema database toko online lengkap dengan data contoh yang dipakai seluruh section ini.

Buka →
# SELECT dan Filtering

Pelajari cara memilih kolom dengan SELECT dan memfilter baris dengan WHERE memakai operator perbandingan, IN, BETWEEN, LIKE, IS NULL, serta kombinasi AND, OR, dan NOT.

Buka →
# Sorting dan Limiting

Urutkan hasil query dengan ORDER BY satu maupun multi kolom, batasi jumlah baris dengan LIMIT dan OFFSET, dan pahami perilaku NULL dalam pengurutan.

Buka →
# Agregasi Data

Ringkas banyak baris menjadi satu angka dengan fungsi agregasi COUNT, SUM, AVG, MIN, dan MAX, serta pahami perbedaan COUNT(*) vs COUNT(kolom) dan perilaku agregasi terhadap NULL.

Buka →
# GROUP BY dan HAVING

Kelompokkan baris dengan GROUP BY tunggal maupun multi kolom, saring hasil agregasi dengan HAVING, dan pahami urutan eksekusi logis sebuah query SQL.

Buka →
# JOIN

Gabungkan data antar tabel dengan INNER, LEFT, RIGHT, dan FULL OUTER JOIN, rapikan query multi-tabel, kuasai self-join, dan hindari jebakan duplikasi baris fan-out.

Buka →
# Subquery

Tulis query di dalam query: subquery skalar, subquery pada WHERE dengan IN dan EXISTS, derived table pada FROM, correlated subquery, dan kapan memakai subquery vs JOIN.

Buka →
# Common Table Expressions

Susun query analitik bertahap dengan klausa WITH — CTE dasar, CTE berantai, perbandingan dengan subquery, hingga recursive CTE untuk hierarki kategori, semuanya diuji nyata di SQLite.

Buka →
# Window Functions

Hitung agregasi tanpa meruntuhkan baris dengan OVER dan PARTITION BY — ROW_NUMBER, RANK, LAG, running total dengan SUM OVER, hingga pola deduplikasi baris terbaru per pelanggan.

Buka →
# Conditional Expressions

Bentuk logika if-else di dalam SQL dengan CASE WHEN, agregasi kondisional SUM(CASE ...), serta COALESCE dan NULLIF untuk menangani nilai NULL — diuji nyata di SQLite.

Buka →
# Manipulasi Data

Tulis perubahan ke tabel dengan INSERT multi nilai, UPDATE dan DELETE yang selalu berpasangan dengan WHERE, UPSERT ON CONFLICT untuk pipeline idempotent, dan klausa RETURNING di PostgreSQL.

Buka →
# Transaksi Database

Pastikan rangkaian perubahan berjalan utuh dengan BEGIN, COMMIT, ROLLBACK, dan SAVEPOINT — diuji lewat skenario transfer stok yang gagal di tengah proses.

Buka →
# Optimasi Query Dasar

Diagnosis query lambat dengan EXPLAIN QUERY PLAN, alasan mengapa SELECT * buruk, pembuatan index dengan perbandingan plan sebelum-sesudah, WHERE yang ramah index, dan LIMIT.

Buka →