Menu
CoddyTech

Cheat Sheet SQL

Terakhir diperbarui

Membaca data (SELECT)

Inti dari SQL: membaca baris dari satu tabel atau lebih.

OperasiSintaks
Memilih semua kolomSELECT * FROM users;
Memilih kolom tertentuSELECT id, name FROM users;
Mengganti nama kolom (alias)SELECT name AS full_name FROM users;
Nilai unikSELECT DISTINCT country FROM users;
Membatasi jumlah barisSELECT * FROM users LIMIT 10;
Melewati lalu membatasi (paging)SELECT * FROM users LIMIT 10 OFFSET 20;
Menghitung barisSELECT COUNT(*) FROM users;

Menyaring baris (WHERE)

Mempersempit baris yang dikembalikan query.

OperasiSintaks
Sama dengan / perbandinganWHERE age >= 18
Beberapa kondisiWHERE age >= 18 AND country = 'US'
Salah satu kondisiWHERE role = 'admin' OR role = 'owner'
Termasuk dalam himpunanWHERE country IN ('US', 'CA', 'MX')
Dalam rentangWHERE price BETWEEN 10 AND 50
Pencocokan polaWHERE email LIKE '%@gmail.com'
Null / bukan nullWHERE deleted_at IS NULL
NegasiWHERE status NOT IN ('archived')

Mengurutkan & mengelompokkan

OperasiSintaks
Urut naik (default)ORDER BY created_at
Urut turunORDER BY created_at DESC
Mengurutkan berdasarkan beberapa kolomORDER BY country, name DESC
Mengelompokkan barisSELECT country, COUNT(*) FROM users GROUP BY country;
Menyaring kelompokGROUP BY country HAVING COUNT(*) > 100

Join

Menggabungkan baris dari dua tabel berdasarkan kolom yang cocok.

Jenis joinHasilSintaks
INNER JOINHanya baris yang cocok di kedua tabelFROM orders o INNER JOIN users u ON o.user_id = u.id
LEFT JOINSemua baris kiri + yang cocok (selain itu null)FROM users u LEFT JOIN orders o ON o.user_id = u.id
RIGHT JOINSemua baris kanan + yang cocokFROM orders o RIGHT JOIN users u ON o.user_id = u.id
FULL OUTER JOINSemua baris dari kedua sisiFROM a FULL OUTER JOIN b ON a.id = b.a_id
CROSS JOINSetiap kombinasi (kartesius)FROM sizes CROSS JOIN colors
Self joinTabel yang digabungkan (join) dengan dirinya sendiriFROM employees e JOIN employees m ON e.manager_id = m.id

Fungsi agregat

Menghitung satu nilai dari sekelompok baris.

FungsiKegunaan
COUNT(*)Jumlah baris
COUNT(col)Jumlah nilai yang tidak null
SUM(col)Total kolom numerik
AVG(col)Nilai rata-rata
MIN(col) / MAX(col)Nilai terkecil / terbesar
STRING_AGG(col, ',')Menggabungkan nilai (Postgres; GROUP_CONCAT di MySQL)

Window function

Menghitung atas sekumpulan baris tanpa meringkasnya menjadi satu.

FungsiSintaks
Nomor barisROW_NUMBER() OVER (ORDER BY score DESC)
Peringkat (dengan celah)RANK() OVER (PARTITION BY country ORDER BY score DESC)
Peringkat rapat (dense rank)DENSE_RANK() OVER (ORDER BY score DESC)
Total berjalanSUM(amount) OVER (ORDER BY created_at)
Baris sebelumnya / berikutnyaLAG(score) OVER (ORDER BY date), LEAD(score) OVER (...)

Mengubah data (INSERT, UPDATE, DELETE)

OperasiSintaks
Menyisipkan satu barisINSERT INTO users (name, email) VALUES ('Ada', 'ada@x.com');
Menyisipkan beberapa barisINSERT INTO users (name) VALUES ('Ada'), ('Alan');
Memperbarui barisUPDATE users SET active = true WHERE id = 1;
Menghapus barisDELETE FROM users WHERE active = false;
Upsert (Postgres/SQLite)INSERT ... ON CONFLICT (email) DO UPDATE SET name = EXCLUDED.name;

Mendefinisikan tabel (DDL)

OperasiSintaks
Membuat tabelCREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT NOT NULL);
Menambah kolomALTER TABLE users ADD COLUMN age INTEGER;
Menghapus kolomALTER TABLE users DROP COLUMN age;
Menghapus tabelDROP TABLE users;
Membuat indexCREATE INDEX idx_users_email ON users (email);
Foreign keyFOREIGN KEY (user_id) REFERENCES users (id)

Semua pernyataan, klausa, dan join SQL yang sering kamu pakai, dalam satu halaman. Cheat sheet SQL ini adalah referensi cepat untuk membaca dan mengubah data relasional: klausa SELECT, empat jenis JOIN, agregasi, serta DDL dan DML untuk membuat dan memperbarui tabel.

Sintaks di sini adalah SQL ANSI standar dan berjalan di PostgreSQL, MySQL, SQLite, dan SQL Server, kecuali jika disebutkan lain. Salin yang kamu butuhkan, atau coba setiap query langsung di playground SQL, tanpa perlu menginstal database. Baru mengenal database? Kursus SQL interaktif gratis dari Coddy mengajakmu belajar query, join, dan agregasi.

FAQ cheat sheet SQL

Apakah cheat sheet SQL ini gratis?

Ya. Cheat sheet SQL ini sepenuhnya gratis, tanpa perlu daftar. Simpan di bookmark dan kembali kapan pun kamu perlu mencari klausa, join, atau fungsi.

Apakah ini berlaku untuk MySQL, PostgreSQL, dan SQLite?
Sebagian besar, ya. Sintaks SELECT, WHERE, JOIN, GROUP BY, dan DDL di sini adalah SQL ANSI standar dan berjalan sama di MySQL, PostgreSQL, SQLite, dan SQL Server. Beberapa fitur lanjutan berbeda antar dialek, yang paling umum adalah upsert dan agregasi string, dan baris-baris itu menyebutkan perbedaannya.
Apa perbedaan INNER JOIN dan LEFT JOIN?
INNER JOIN hanya mengembalikan baris yang punya pasangan di kedua tabel. LEFT JOIN mengembalikan setiap baris dari tabel kiri (pertama) dan mengisi NULL untuk kolom dari tabel kanan jika tidak ada pasangan. Ini berguna saat kamu ingin menampilkan semua user meskipun sebagian belum punya pesanan.
Bisakah saya berlatih perintah SQL ini secara online?
Bisa. Buka playground SQL untuk menjalankan query apa pun dari cheat sheet ini pada database sungguhan di browsermu, tanpa perlu instalasi. Kalau kamu ingin belajar terarah, kursus SQL interaktif gratis dari Coddy membawamu dari SELECT sampai join dan window function, langkah demi langkah.
Apakah cheat sheet ini cocok untuk pemula?

Cocok. Isinya disusun mulai dari operasi yang paling umum (membaca dan menyaring data) sampai yang lanjutan (window function), jadi kamu bisa memakai bagian atas sejak hari pertama dan pelan-pelan menguasai sisanya.

Ilustrasi bahasa pemrograman di Coddy

Belajar SQL bersama Coddy

Mulai