SQLite - Subquery: Panduan untuk Pemula
Halo, para pemrogram yang sedang belajar! Hari ini, kita akan mengemban sebuah perjalanan menarik ke dunia subquery di SQLite. Jangan khawatir jika Anda masih baru dalam programming – saya akan menjadi panduan yang ramah, menjelaskan segala sesuatunya langkah demi langkah. Ayo masuk ke dalamnya!
Apa Itu Subquery?
Sebelum kita masuk ke detailnya, mari kita mengerti apa itu subquery. Bayangkan Anda sedang merencanakan sebuah pesta dan butuh membuat daftar tamu. Anda mungkin pertama-tama membuat daftar semua teman Anda, kemudian memperkecilnya menjadi hanya mereka yang tinggal dekat. Di SQL, subquery seperti langkah kedua itu – sebuah query dalam query yang membantu Anda memperhalus hasil Anda.
Subquery Dalam Statement SELECT
Ayo mulai dengan penggunaan subquery yang paling umum – dalam statement SELECT.
Contoh Subquery Dasar
SELECT name
FROM employees
WHERE salary > (SELECT AVG(salary) FROM employees);
Dalam contoh ini, kita mencari karyawan yang gajinya di atas rata-rata. Query dalam query (SELECT AVG(salary) FROM employees)
menghitung gaji rata-rata, dan query luar menggunakan hasil ini untuk menyaring karyawan.
Subquery Dalam Klausul FROM
SELECT department, avg_salary
FROM (
SELECT department, AVG(salary) as avg_salary
FROM employees
GROUP BY department
) AS dept_salaries
WHERE avg_salary > 50000;
Di sini, kita membuat sebuah tabel temporer dengan gaji rata-rata per departemen, kemudian memilih departemen dengan gaji rata-rata di atas 50.000.
Subquery Dalam Statement INSERT
Subquery juga dapat digunakan untuk memasukkan data berdasarkan informasi yang sudah ada.
INSERT INTO high_earners (employee_id, name)
SELECT id, name
FROM employees
WHERE salary > (SELECT AVG(salary) * 1.5 FROM employees);
Query ini memasukkan karyawan yang menghasilkan lebih dari 1,5 kali gaji rata-rata ke dalam tabel 'high_earners'.
Subquery Dalam Statement UPDATE
Memperbarui data berdasarkan subquery adalah fitur yang kuat.
UPDATE employees
SET bonus = salary * 0.1
WHERE department_id IN (
SELECT id
FROM departments
WHERE performance_rating > 8
);
Query ini memberikan bonus 10% kepada karyawan di departemen yang performanya tinggi.
Subquery Dalam Statement DELETE
Akhirnya, mari kita lihat bagaimana subquery dapat membantu menghapus data.
DELETE FROM products
WHERE id NOT IN (
SELECT product_id
FROM orders
WHERE order_date > DATE('now', '-1 year')
);
Query ini menghapus produk yang belum dipesan dalam setahun terakhir.
Metode Subquery
Berikut adalah tabel yang menggabungkan metode yang kita bahas:
Metode | Deskripsi | Contoh |
---|---|---|
SELECT Dengan Subquery | Gunakan subquery untuk menyaring atau menghitung nilai untuk query utama | SELECT ... WHERE column > (SELECT AVG(...)) |
Subquery Dalam Klausul FROM | Buat sebuah tabel turunan untuk diquery | SELECT ... FROM (SELECT ...) AS derived_table |
INSERT Dengan Subquery | Masukkan data berdasarkan subquery | INSERT INTO ... SELECT ... WHERE ... |
UPDATE Dengan Subquery | Perbarui data berdasarkan subquery | UPDATE ... SET ... WHERE column IN (SELECT ...) |
DELETE Dengan Subquery | Hapus data berdasarkan subquery | DELETE FROM ... WHERE column NOT IN (SELECT ...) |
Kesimpulan
Selamat! Anda telah mengambil langkah pertama ke dunia subquery di SQLite. Ingat, seperti belajar menunggang sepeda, menguasai subquery memerlukan latihan. Jangan terganggu jika belum segera memahaminya – terus mencoba dengan berbagai query, dan segera Anda akan dapat menulis subquery yang kompleks dengan mudah.
Sementara itu, ini adalah cerita kecil dari pengalaman mengajar saya: Pernah saya punya murid yang kesulitan dengan subquery. Dia membandingkan mereka dengan boneka Rusia yang bersarang – query dalam query. Analogi ini membantunya untuk menggambar konsep, dan dia segera menjadi salah satu yang terbaik dalam kelas dalam menulis subquery.
Jadi, apakah Anda melihat subquery seperti boneka Rusia bersarang, atau mungkin seperti sebuah perburuan harta karun di mana setiap query membawa Anda mendekati hadiah, terus latih dan jelajahi. Dunia data luas dan menarik, dan subquery adalah kunci Anda untuk membuka rahasia-rahasiannya!
Selamat menulis query, dan ingat – di dunia basis data, kecurigaan adalah teman terbaik Anda. Terus bertanya, dan Anda akan terus menemukan jawaban!
Credits: Image by storyset