Modul 6 - Subquery - PDF - 1
Modul 6 - Subquery - PDF - 1
MODUL 6
SUB QUERY
A. TUJUAN
Memahami keterhubungan entitas di dalam basis data
Memahami operasi subquery dan jenis-jenisnya di dalam pengmabilan data
Mampu menyelesaikan kasus-kasus pengambilan data yang kompleks dengan
pendekatan subquery
B. PETUNJUK
Awali setiap aktivitas dengan doa, semoga berkah dan mendapat kemudahan.
Pahami tujuan, dasar teori, dan latihan-latihan pratikum dengan baik dan benar.
Kerjakan tugas-tugas pratikum dengan baik, sabar dan jujur.
Tanyakan kepada asisten/dosen apabila ada hal-hal yang kurang jelas
C. DASAR TEORI
1. Subquery
Subquery (disebut juga subselect atau nested select / query
atau inner- select )
adalah query SELECT yang ada di dalam perintah SQL lain misalnya SELECT,
INSERT, UPDATE, atau DELETE. Keberadaan subquery secara nyata mampu
menyederhanakan persoalan-persoalan rumit berkaitan query data. Sebagai contoh,
misal terdapat pernyataan sebagai berikut:
Dapatkan data mahasiswa yang alamatnya sama dengan mahasiswa dengan
nim 104
1
Praktikum Basis Data 2017 TE UM
Pada hakekatnya, subquery sangat berguna ketika sebuah query didasarkan pada
nilai-nilai yang tak diketahui. Sintaks formal subquery diperlihatkan sebagai berikut:
2
Praktikum Basis Data 2017 TE UM
Tabel Dosen
3
Praktikum Basis Data 2017 TE UM
Tabel Jurusan
Data dosen pada tabel ini berisi kode dosen yang menjadi ketua jurusan.
Relasi
Himpunan entitas di atas dapat direpresentasikan ke dalam diagram skema (schema
diagram) seperti berikut.
2. Scalar Subquery
Contoh subquery baris tunggal adalah mendapatkan data mahasiswa yang jenis
kelaminnya sama dengan mahasiswa dengan nama Wati.
4
Praktikum Basis Data 2017 TE UM
Sebagai hasilnya, didapatkan jenis kelamin mahasiswa dengan nama Wati, yakni
P yang selanjutnya digunakan oleh main query sehingga menghasilkan sebagai
berikut.
3. Multiple-Row Subquery
Pada subquery ini, kita menggunakan operator komparasi IN, ANY / SOME, atau
ALL.
a. Operator IN
Operator IN memiliki arti : sama dengan member di dalam list. Sebagai contoh,
kita bisa menggunakan operator ini untuk mendapatkan data dosen yang mengajar
matakuliah
b. Operator ANY/SOME
Operator ANY / SOME memiliki arti : membandingkan suatu nilai dengan
setiap nilai yang dikembalikan oleh subquery. Misalkan kita ingin mendapatkan
data matakuliah yang memiliki sks lebih besar dari sembarang sks matakuliah di
semester 3.
5
Praktikum Basis Data 2017 TE UM
c. Operator ALL
Operator ALL memiliki arti: membandingkan suatu nilai dengan semua nilai
yang dikembalikan oleh subquery. Misal, kita ingin mendapatkan data matakuliah
yang memiliki sks lebih besar dari semua sks matakuliah di semester 3.
6
Praktikum Basis Data 2017 TE UM
4. Multiple-Column Subquery
Subquery kolom ganda (atau tabel) juga menggunakan operator komparasi IN, ANY /
SOME, atau ALL. Pada query ini, nilai dari subquery dalam bentuk kolom ganda
dikomparasi main q uery. Sebagai contoh, misalkan kita ingin menampilkan data
matakuliah yang semester dan sksnya sesuai dengan semester dan sks matakuliah
dengan kode PTI447.
7
Praktikum Basis Data 2017 TE UM
b. NOT EXISTS
Pernyataan berikut akan mendapatkan data matakuliah yang tidak diambil oleh
mahasiswa.
E. TUGAS PRAKTIKUM
1. Dapatkan kode dan nama matakuliah dosen yang menjadi Ketua Jurusan Teknik
Elektro.
2. Dapatkan data mahasiswa yang tidak mengambil matakuliah.
3. Dapatkan data dosen yang mengajar matakuliah diatas semester 3.
4. Dapatkan data matakuliah dosen yang bukan merupakan Ketua Jurusan Teknik
Elektro.
5. Dapatkan data dosen pengajar matakuliah yang tidak diambil oleh mahasiswa.
F. TUGAS RUMAH
1. Dapatkan data dosen yang mengajar matakuliah dengan sks lebih besar dari
sembarang sks.
2. Dapatkan data mahasiswa yang tinggal satu wilayah dengan dosen yang bukan
merupakan Ketua Jurusan Teknik Elektro.
3. Dapatkan data mahasiswa yang diajar oleh Ketua Jurusan Teknik Elektro.