Rumahweb Journal
Banner - Belajar SQL Database Bagian 8

Belajar SQL Database Bagian 8 – Subquery SQL dan Contohnya

Di seri-seri sebelumnya, kita sudah belajar SQL database dasar, mulai dari cara menampilkan data hingga mengelola data dari beberapa tabel. Nah, dalam praktiknya, kadang kita perlu query yang lebih komplek, seperti query yang hasilnya tergantung pada hasil query lain.

Untuk kebutuhan ini, SQL punya fitur bernama Subquery (atau sering disebut query bersarang). Bayangkan subquery seperti query di dalam query, seperti kotak di dalam kotak.

Dalam lanjutan series belajar SQL Database bagian 8 ini, kita akan membahas apa itu subquery, kapan harus menggunakannya, dan bagaimana cara kerjanya melalui contoh kasus data siswa dan mata pelajaran yang mudah dipahami.

Apa Itu Subquery?

Sederhananya, subquery adalah query SQL yang ditulis di dalam query SQL lain. Biasanya subquery diletakkan di dalam tanda kurung () dan hasilnya akan dipakai oleh query utama sebagai acuan.

Subquery biasanya digunakan saat kita perlu:

  • Membandingkan data dengan hasil perhitungan lain
  • Mengambil data berdasarkan hasil query lain
  • Membuat query bertingkat yang lebih dinamis

Contoh kasus sederhana:
Apabila kita ingin menampilkan data siswa dengan nilai di atas rata-rata, maka nilai rata-rata tersebut perlu dihitung dahulu. Nah, perhitungan itulah yang dilakukan oleh subquery.

Promo Hosting Murah Rumahweb

Contoh Struktur Tabel

Sebelum masuk ke pembahasan, berikut permisalan skema database yang akan digunakan. Struktur ini akan digunakan untuk semua contoh di bawah.

Tabel siswa

Skema Database tabel siswa - Belajar SQL Database Bagian 8

Tabel nilai

Skema Database tabel nilai

Di Mana Subquery Bisa Digunakan?

Subquery bisa digunakan di beberapa posisi dalam query SQL:

1. Subquery pada WHERE

Penggunaan subquery yang paling sering ditemui adalah pada bagian WHERE, yaitu untuk memfilter data berdasarkan hasil query lain.

Contoh: Menampilkan Siswa dengan Nilai di Atas Rata-rata

SELECT s.nama, n.nilai

FROM siswa s

JOIN nilai n ON s.id = n.siswa_id

WHERE n.nilai > (

    SELECT AVG(nilai)

    FROM nilai

);

Hasilnya:

Hasil contoh penerapan subquery where

Penjelasan:
Query di dalam tanda kurung akan menghitung nilai rata-rata terlebih dahulu. Setelah itu, query utama akan menampilkan siswa yang nilainya lebih tinggi dari rata-rata tersebut.

2. Subquery dengan Operator IN

Subquery juga sering dipadukan dengan operator IN, terutama jika subquery menghasilkan lebih dari satu data.

Contoh: Menampilkan Siswa yang Mengambil Mata Pelajaran Matematika

SELECT nama

FROM siswa

WHERE id IN (

    SELECT siswa_id

    FROM nilai

    WHERE mata_pelajaran = 'Matematika'

);

Hasilnya:

Hasil contoh penerapan subquery In

Penjelasan:
Subquery akan mengambil daftar siswa_id yang memiliki mata pelajaran Matematika.
Kemudian query utama menampilkan nama siswa yang termasuk dalam daftar tersebut.

3. Subquery pada SELECT

Selain di WHERE, subquery juga bisa digunakan di bagian SELECT. Biasanya ini dipakai untuk menampilkan nilai tambahan dari hasil perhitungan.

Contoh: Menampilkan Nilai Rata-rata sebagai Kolom Tambahan

SELECT

    mata_pelajaran,

    (SELECT AVG(nilai) FROM nilai) AS rata_rata_nilai

FROM nilai

GROUP BY mata_pelajaran;

Hasilnya:

Hasil contoh penerapan subquery select

Penjelasan:
Subquery digunakan untuk menghitung nilai rata-rata, kemudian hasilnya ditampilkan sebagai kolom tambahan di hasil query.

4. Subquery pada FROM

Jika subquery ditempatkan di bagian FROM, maka subquery tersebut akan berfungsi sebagai tabel sementara yang kemudian diproses oleh query utama.

Contoh: Menghitung Jumlah Siswa per Mata Pelajaran

SELECT sub.mata_pelajaran, sub.total_siswa

FROM (

    SELECT mata_pelajaran, COUNT(DISTINCT siswa_id) AS total_siswa

    FROM nilai

    GROUP BY mata_pelajaran

) AS sub;

Hasilnya:

Hasil contoh penerapan subquery from

Penjelasan:
Query di dalam FROM akan membuat data sementara berisi jumlah siswa untuk setiap mata pelajaran. Setelah itu, query utama tinggal menampilkan hasilnya.

Contoh Studi Kasus Lain

Berikut adalah contoh studi kasus lain untuk menampilkan siswa dengan nilai tertinggi.

SELECT s.nama, n.nilai

FROM siswa s

JOIN nilai n ON s.id = n.siswa_id

WHERE n.nilai = (

    SELECT MAX(nilai)

    FROM nilai

);

Hasilnya:

Hasil contoh kasus studi lain

Penjelasan:
Subquery digunakan untuk mencari nilai tertinggi, kemudian query utama akan menampilkan siswa yang memiliki nilai tersebut.

Tips Menggunakan Subquery

Beberapa hal yang perlu diperhatikan saat menggunakan subquery:

  • Subquery bisa digunakan di bagian WHERE, SELECT, dan FROM
  • Operator seperti IN, NOT IN, dan EXISTS sering dipakai bersama subquery
  • Subquery yang terlalu kompleks bisa memengaruhi performa query
  • Dalam kondisi tertentu, subquery bisa digantikan dengan JOIN untuk hasil yang lebih optimal

Kesimpulan

Subquery adalah fitur penting dalam SQL yang memungkinkan kita membuat query yang lebih fleksibel dan dinamis. Dengan subquery, kita bisa memanfaatkan hasil query lain untuk memfilter data, melakukan perhitungan, hingga membentuk tabel sementara. Dengan memahami konsep subquery, proses pengolahan dan analisis data dalam database akan terasa lebih rapi dan efisien. 

Demikian tutorial belajar SQL Database bagian 8 tentang Subquery SQL dan Contoh Penggunaannya. Terus ikuti seri belajar SQL Database dari Rumahweb untuk meningkatkan kemampuan Anda dalam mengelola database. Semoga bermanfaat!

Bermanfaatkah Artikel Ini?

Klik bintang 5 untuk rating!

Rating rata-rata 0 / 5. Vote count: 0

Belum ada vote hingga saat ini!

Kami mohon maaf artikel ini kurang berguna untuk Anda!

Mari kita perbaiki artikel ini!

Beri tahu kami bagaimana kami dapat meningkatkan artikel ini?

Kholifatush Sholichah

Kholifatush Sholichah, atau yang akrab disapa Lika adalah bagian dari team Technical Support Rumahweb. Lika suka menulis jurnal tentang WordPress, cara mengatasi berbagai macam error, seperti SSL error, database error, dan masalah teknis lainnya yang sering terjadi pada website. Melalui tulisannya, Lika ingin membantu Anda mengatasi masalah tersebut dengan solusi yang mudah dipahami.

banner pop up - Pindah Hosting ke Rumahweb