Basis Data 6: SQL Sub Query
Sub Query, atau yang juga dikenal sebagai nested query, adalah sebuah query (perintah SQL) yang disisipkan ke dalam query utama sebagai…
Basis Data 6: SQL Sub Query

Photo by Rubaitul Azad on Unsplash
Sub Query, atau yang juga dikenal sebagai nested query, adalah sebuah query (perintah SQL) yang disisipkan ke dalam query utama sebagai bagian dari klausa WHERE, FROM, atau SELECT. Subquery memungkinkan pengguna untuk mengeksekusi query yang lebih kompleks dengan menggabungkan hasil dari satu query ke dalam query lainnya.

Subquery digunakan untuk mencapai tujuan tertentu dalam pengambilan data atau manipulasi data yang tidak dapat dicapai dengan menggunakan query tunggal. Dengan subquery, pengguna dapat menggabungkan data dari beberapa tabel, melakukan perbandingan antara hasil query, atau membuat pengambilan data yang lebih terperinci.
Subquery dapat disisipkan ke dalam klausa WHERE, FROM, atau SELECT dari query utama. Dalam klausa WHERE, subquery digunakan untuk memfilter baris berdasarkan kriteria tertentu. Dalam klausa FROM, subquery digunakan untuk menentukan sumber data untuk query utama. Sedangkan dalam klausa SELECT, subquery dapat menghasilkan nilai tunggal yang akan dimasukkan ke dalam hasil query utama.
Terdapat beberapa tipe subquery yaitu:
- Multiple column Subquery: Subquery kolom ganda (multiple-column) mengembalikan lebih dari satu baris dan satu kolom data.

- Multiple-row Subquery: Subquery ini menghasilkan beberapa baris data.

Subquery baris ganda dapat menggunakan operator komparasi IN, ANY, SOME, atau ALL.
- Scalar Subquery: Subquery ini menghasilkan nilai tunggal, seperti hasil perhitungan atau pengambilan data tunggal.

Subquery baris tunggal dapat menggunakan operator baris tunggal =, >,>=, .
Salah satu contoh umum dari subquery adalah penggunaannya dalam klausa WHERE untuk memfilter hasil query berdasarkan kriteria yang berasal dari hasil query lainnya. Misalnya, subquery dapat digunakan untuk mencari pelanggan yang melakukan pembelian diatas rata-rata total pembelian. Contoh lainnya adalah penggunaan subquery dalam klausa SELECT untuk menghasilkan nilai agregat, seperti jumlah total penjualan per kategori produk.
Keuntungan utama dari penggunaan subquery adalah kemampuannya untuk menangani tugas-tugas yang kompleks dengan logika yang lebih rumit dalam manipulasi data. Namun, penggunaan subquery yang berlebihan dapat menyebabkan penurunan kinerja dan kompleksitas yang sulit dipelihara dalam kode SQL.
Dengan pemahaman yang baik tentang subquery, pengguna dapat mengoptimalkan kinerja dan fleksibilitas dalam pengambilan data dan manipulasi data dalam basis data relasional. Subquery adalah alat yang berguna dalam pengembangan aplikasi database yang memungkinkan pengguna untuk mengeksekusi query yang lebih kompleks dan mendapatkan wawasan yang lebih dalam tentang data.
Praktikum dan Tugas
Praktikum kali ini, kita akan membuat tabel terlebih dahulu yang nantinya akan dipakai untuk mengimplementasikan jenis-jenis subquery dari soal-soal tugas yang diberikan.
Tabel Mahasiswa

Tabel Mata Kuliah

Tabel Jurusan

Tabel Dosen

Tabel Ambil Mata Kuliah

Tugas

SELECT kd_mk, nama_mk
FROM matakuliah
WHERE kode_dos IN
(SELECT kode_dos
FROM jurusan
WHERE nama_jur = 'Teknik Elektro')


SELECT *
FROM mahasiswa
WHERE nim NOT IN
(SELECT nim
FROM ambil_mk)


SELECT *
FROM dosen
WHERE kode_dos IN
(SELECT kode_dos
FROM matakuliah
WHERE semester > 3)


SELECT *
FROM matakuliah
WHERE kode_dos NOT IN
(SELECT kode_dos
FROM jurusan
WHERE nama_jur = 'Teknik Elektro')


SELECT *
FROM dosen
WHERE kode_dos IN (
SELECT kode_dos
FROM matakuliah
WHERE kd_mk NOT IN (
SELECT kd_mk
FROM ambil_mk
)
)


SELECT *
FROM dosen
WHERE kode_dos IN (
SELECT kode_dos
FROM matakuliah
WHERE sks > ANY (
SELECT sks
FROM matakuliah
)
)


SELECT *
FROM mahasiswa
WHERE alamat IN (
SELECT alamat_dos
FROM dosen
WHERE kode_dos NOT IN (
SELECT kode_dos
FROM jurusan
WHERE nama_jur = 'Teknik Elektro'
)
)


SELECT *
FROM mahasiswa
WHERE nim IN (
SELECT nim
FROM ambil_mk
WHERE kd_mk IN (
SELECT kd_mk
FROM matakuliah
WHERE kode_dos IN (
SELECT kode_dos
FROM jurusan
WHERE nama_jur = 'Teknik Elektro'
)
)
)

Referensi
Ahmad Nugroho, S.Kom., M.Kom. (2026). SQL SUB QUERY. [Modul 6 Praktikum Basis Data].
메타데이터
- post_id
- a5502f89bc47
- slug
- basis-data-6-sql-sub-query-a5502f89bc47
- url
- https://medium.com/@rakamushadaq76/basis-data-6-sql-sub-query-a5502f89bc47
- canonical_url
- https://medium.com/@rakamushadaq76/basis-data-6-sql-sub-query-a5502f89bc47
- author_url
- https://medium.com/@rakamushadaq76
- status
- ok
- fetched_at
- 2026-08-25 20:26:55