SUBQUERY Basis Data
1. Pengertian
Subquery adalah perintah SELECT yang berada di dalam perintah SQL lain.
Subquery sangat berguna ketika kita ingin menampilkan data dengan kondisi yang
bergantung pada data di dalam table itu sendiri.
2. Kegunaan
Kegunaan-kegunaan Subquery dalam memanipulasi data:
Meng-copy data dari satu tabel ke tabel lain
Menerima data dari inline view
Mengambil data dari tabel lain untuk kemudian di update ke tabel yang dituju
Menghapus baris dari satu tabel berdasarkan baris dari tabel lain.
3. Pedoman Dalam Menggunakan SubQuery
Suatu subquery harus diapit tanda kurung.
Tempatkan subquery disisi kanan dari kondisi pembanding agar mudah dibaca.
Pada Oracle8i dan keluarankeluaran berikutnya, suatu klausa ORDER BY bisa
digunakan dan diperlukan dalam subquery untuk melakukan pemeringkatan
(TopNanalysis).
Dua kelas dari kondis-ikondisi pembanding digunakan dalam subquerysubquery:
singlerow operator dan multiplerow operator.
Singlerow subquery: Query yang mengembalikan hanya satu baris dari pernyataan
inner SELECT (SELECT terdalam).
Multiplerow subquery: Query yang mengembalikan lebih dari satu baris dari
pernyataan inner SELECT.
4. ATURAN SUB QUERY
a. Klausa ORDER BY tidak boleh digunakan .di subquery. ORDER BY dapat
digunakan ,di pernyataan SELECT luar.
b. Klausa subquery SELECT harus beisi satu nama kolom tunggal atau ekspresi
kecuali untuk subquery-subquery menggunakan kata kunci EXIST.
c. secara default, nama-nama kolom di subquery mengacu ke nama table diklausa
FROM di query lebih luar dengan mengkualifikasi nama kolom
d. Saat subquery adalah salah satu dua operan dilibatkan di pembandingan, subquery
harus muncul di sisi kanan pembandingan.
e. Subquery tdak boleh digunakan sebagai operan di ekspresi.
Contoh penggunaan Sub query
Menampilkan data karyawan yang bekerja satu departemen dengan Biri.
SELECT last_name, title FROM employee WHERE dept_id = ( SELECT dept_id FROM
employee WHERE UPPER(last_name) = ‘BIRI’ );
5. Operator EXIST dan NOT EXIST
Kata kunci EXIST dan NOT EXIST dirancang hanya untuk digunakan di
subquery. Kata kunci-kata kunci ini menghasilkan nilai TRUE atau FALSE EXIST
akan mengirim nilai TRUE jika dan hanya jika terdapat sedikitnya satu baris di table
hasil yang dikirim oleh subquery. EXIST mengirim nilai FALSE jika subquery
mengirm table kosong NOT EXIST kebalian dan EXIST.
Karena EXIST dan NOT EXIST hanya memeriksa keberadaan baris-baris di table hasil
subquery.
Contoh
Penggunaan EXIST
Daftarkan semua staf yang bekerja dikantor cabang beralamat di jalan “Tamansari
81”.
SELECT IDStaf , namaDepan, namaBelakang, pangkat, gPokok FROM Staf s WHERE
EXIST (SELECT * FROM KantorCabang k, StafKCabang sk WHERE
s.IDStaf=sk.IDStafAND sk.IDKCabang =k.IDKCabang AND k.jalan=’tamansari 81’
);