Praktikum Database Subquery Lanjutan dan View Abdul Kadir
Operator EXISTS EXISTS merupakan jenis operator boolean, yang menghasilkan nilai benar atau salah Bentuk penggunaan: SELECT nama_kolom FROM nama_tabel WHERE EXISTS (subquery);
Operator EXISTS (lanjiutan…) Contoh: SELECT nip, kode_bag FROM pekerjaan WHERE EXISTS (SELECT * FROM bagian (SELECT * FROM bagian WHERE kode_bag = pekerjaan.kode_bag); WHERE kode_bag = pekerjaan.kode_bag);
Operator ALL Operator ALL digunakan untuk melakukan pembandingan dengan subquery. Kondisi dengan ALL menghasilkan nilai benar jika jika pembandingan menghasilkan benar untuk setiap nilai dalam subquery Contoh untuk memperoleh semua pegawai yang gajinya lebih rendah daripada semua pegawai di departemen Akuntansi (kode_bag = ‘3’): SELECT nip, gaji FROM pekerjaan WHERE gaji < ALL ( SELECT gaji ( SELECT gaji FROM pekerjaan FROM pekerjaan WHERE kode_bag = '3' ); WHERE kode_bag = '3' );
Subquery dengan Ekspresi CASE Contoh: SELECT nip, kode_bag, CASE WHEN kode_bag = (SELECT kode_bag FROM bagian FROM bagian WHERE nama_bag = 'Produksi') WHERE nama_bag = 'Produksi') THEN 'Produksi' ELSE 'Non-Produksi' END AS 'produksi?' FROM pekerjaan;
Subquery pada Klausa SELECT Contoh: SELECT nip, (SELECT nama_bag FROM bagian FROM bagian WHERE kode_bag = pekerjaan.kode_bag) WHERE kode_bag = pekerjaan.kode_bag) AS 'nama bagian' AS 'nama bagian' FROM pekerjaan;
Subquery pada ORDER BY Contoh: SELECT nip, nama FROM infoprib ORDER BY (SELECT kode_bag FROM pekerjaan FROM pekerjaan WHERE nip = infoprib.nip); WHERE nip = infoprib.nip);
Subquery Berkorelasi Subquery berkorelasi (correlated subquery) adalah subquery yang melibatkan suatu pengacuan ke tabel yang terdapat pada query induk Contoh: SELECT nip, kode_bag FROM pekerjaan WHERE NOT EXISTS (SELECT * FROM bagian (SELECT * FROM bagian WHERE kode_bag = pekerjaan.kode_bag); WHERE kode_bag = pekerjaan.kode_bag);
Subquery pada HAVING Subquery juga bisa diletakkan dalam klausa HAVING Contoh: SELECT kode_bag, SUM(gaji) FROM pekerjaan p1 GROUP BY kode_bag HAVING 1 < (SELECT COUNT(*) FROM pekerjaan p2 FROM pekerjaan p2 WHERE p1.kode_bag = p2.kode_bag); WHERE p1.kode_bag = p2.kode_bag);
View View merupakan suatu bentuk representasi data yang dapat dibuat dengan melibatkan data yang ada pada satu atau beberapa tabel Dengan menggunakan view, dimungkinkan untuk membuat hanya bagian tertentu dalam suatu tabel yang akan muncul
View Sebagai contoh, suatu view bisa berupa data NIP dan kode bagian tempat pegawai bekerja, tanpa melibatkan data gaji
Membuat View Menggunakan CREATE VIEW Contoh: CREATE VIEW info_umum AS SELECT nip, nama FROM infoprib;
Memperoleh Informasi dari View Contoh: SELECT * FROM info_umum;
Mengubah View Menggunakan ALTER VIEW Contoh: ALTER VIEW info_umum AS SELECT nip, nama, sex FROM infoprib;
Membuat View dari Sejumlah Tabel Contoh: CREATE VIEW info_peg AS SELECT infoprib.nip, infoprib.nama, bagian.nama_bag bagian.nama_bag FROM infoprib, pekerjaan, bagian WHERE infoprib.nip = pekerjaan. nip AND pekerjaan.kode_bag = bagian.kode_bag; pekerjaan.kode_bag = bagian.kode_bag;
Melihat Daftar View Gunakan SHOW TABLES Untuk melihat definisi view gunakan SHOW CREATE VIEW Contoh: SHOW CREATE VIEW info_peg;
Membuat View Pengelompokan Contoh: CREATE VIEW jum_kelamin AS SELECT sex, COUNT(sex) FROM infoprib GROUP BY sex;
Memberi Nama Lain Kolom Contoh: ALTER VIEW jum_kelamin (kelamin, jumlah) AS SELECT sex, COUNT(sex) FROM infoprib GROUP BY sex; Pemanggilan: SELECT * FROM jum_kelamin;
Menghapus View Perintah: DROP VIEW Contoh: DROP VIEW jum_kelamin;
Latihan Buatlah view yang bisa menghasilkan informasi seperti berikut: