Perancangan Basis Data 1 Subquery Lanjutan Operator EXISTS
Perancangan Basis Data 1 Subquery Lanjutan
Operator EXISTS merupakan jenis operator boolean, yang menghasilkan nilai benar atau salah l Bentuk penggunaan: l EXISTS SELECT nama_kolom FROM nama_tabel WHERE EXISTS (subquery);
Operator EXISTS (lanjiutan…) l Contoh: SELECT nip, kode_bag FROM pekerjaan WHERE EXISTS (SELECT * FROM bagian WHERE kode_bag = pekerjaan. kode_bag);
Operator ALL digunakan untuk melakukan pembandingan dengan subquery. Kondisi dengan ALL menghasilkan nilai benar jika pembandingan menghasilkan benar untuk setiap nilai dalam subquery l Contoh untuk memperoleh semua pegawai yang gajinya lebih rendah daripada semua pegawai di departemen Akuntansi (kode_bag = ‘ 3’): l SELECT nip, gaji FROM pekerjaan WHERE gaji < ALL ( SELECT gaji FROM pekerjaan WHERE kode_bag = '3' );
Subquery dengan Ekspresi CASE l Contoh: SELECT nip, kode_bag, CASE WHEN kode_bag = (SELECT kode_bag FROM bagian WHERE nama_bag = 'Produksi') THEN 'Produksi' ELSE 'Non-Produksi' END AS 'produksi? ' FROM pekerjaan;
Subquery pada Klausa SELECT l Contoh: SELECT nip, (SELECT nama_bag FROM bagian WHERE kode_bag = pekerjaan. kode_bag) AS 'nama bagian' FROM pekerjaan;
Subquery pada ORDER BY l Contoh: SELECT nip, nama FROM infoprib ORDER BY (SELECT kode_bag FROM pekerjaan WHERE nip = infoprib. nip);
Subquery Berkorelasi l Subquery berkorelasi (correlated subquery) adalah subquery yang melibatkan suatu pengacuan ke tabel yang terdapat pada query induk l Contoh: SELECT nip, kode_bag FROM pekerjaan WHERE NOT EXISTS (SELECT * FROM bagian WHERE kode_bag = pekerjaan. kode_bag);
Subquery pada HAVING l Subquery juga bisa diletakkan dalam klausa HAVING l Contoh: SELECT kode_bag, SUM(gaji) FROM pekerjaan p 1 GROUP BY kode_bag HAVING 1 < (SELECT COUNT(*) FROM pekerjaan p 2 WHERE p 1. kode_bag = p 2. kode_bag);
- Slides: 9