SUB QUERY DAN VIEW Praktikum SBD – 7 & 8
SUB QUERY Sub Query merupakan query yang digunakan dalam sebuah query untuk keperluan tertentu. Sub query buasanya digunakan sebagai sumber data berupa sebuah kumpulan record (record set) dari query utamanya. Bukan menjadi hasil akhir dari perintah query secara keseluruhan. Secara logika, kumpulan record (record set) hasil dari sub query menyerupai sebuah tabel utuh yang berdiri sendiri namun tidak secara fisik (tabel maya).
SUB QUERY Hasil dari sub query yang menggunakan perintah SELECT dengan berbagai pilihan field yang berasal dari satu atau banyak tabel, biasanya diletakkan dalam klausa FROM dari bagian query utamanya. Hal tersebut menunjukkan bahwa hasil dari sub query menjadi sumber data bagi query utamanya. Sub query bisa tercipta dalam beberapa level kedalam sub query
CONTOH PERINTAH SUB QUERY SELECT dsn.* FROM (SELECT * FROM dosen WHERE nama_dosen LIKE %A%) AS dsn;
CONTOH PERINTAH SUB QUERY SELECT H.nim, M.nama_mhs, K.nama_mtk, D.nama_dosen, U.nama_ujian, H.nilai FROM hasil_ujian AS H, mahasiswa AS M, matakuliah AS K, dosen AS D, jenis_ujian AS U WHERE (M.nim=H.nim) AND (U.kode_ujian=H.kode_ujian) AND (K.kode_mtk=H.kode_mtk) AND (D.kode_dosen=K.kode_dosen) AND (H.nilai between 70 and 90); SELECT hasil.nim, hasil.nama_mhs, hasil.nama_ujian, hasil.nilai FROM (SELECT H.nim, M.nama_mhs, K.nama_mtk, D.nama_dosen, U.nama_ujian, H.nilai FROM hasil_ujian AS H, mahasiswa AS M, matakuliah AS K, dosen AS D, jenis_ujian AS U WHERE (M.nim=H.nim) AND (U.kode_ujian=H.kode_ujian) AND (K.kode_mtk=H.kode_mtk) AND (D.kode_dosen=K.kode_dosen)) AS hasil WHERE (hasil.nilai BETWEEN 70 AND 90);
OBJEK VIEW Objek View merupakan tabel virtual yang bersisi sekumpulan record yang berasal dari satu atau banyak tabel. View sebenarnya adalah sebuah definisi dalam Bahasa SQL untuk menghasilkan atau melihat sekumpulan record yang beasal dari satu atau banyak tabel. Definisi tersebut selanjutnya diberi nama atau label. Jika anam atau label tersebut dipanggil maka mesin server database akan menghasilkan sebuah tabel baru yang merupakan tabel maya/virtual.
MEMBUAT, MERUBAH DAN MENGGUNAKAN VIEW Sintax dasar mebuat objek view adalah: CREATE [OR REPLACE] VIEW <view_name. AS <select_statement> Perintah CREATE digunakan apabila kita akan membuat sebuah objek view baru, sedangan tambahan perintah OR REPLACE (pilihan/optional), digunakan jika kita akan membuat view baru dan/ atau sekaligus merubah definisi dari view yang dimaksud.
CONTOH PEMBUATAN OBJEK VIEW CREATE VIEW view_hasil AS SELECT H.nim, M.nama_mhs, K.nama_mtk, D.nama_dosen, U.nama_ujian, H.nilai FROM hasil_ujian AS H, mahasiswa AS M, matakuliah AS K, dosen AS D, jenis_ujian AS U WHERE (M.nim=H.nim) AND (U.kode_ujian=H.kode_ujian) AND (K.kode_mtk=H.kode_mtk) AND (D.kode_dosen=K.kode_dosen); CREATE OR REPLACE VIEW view_hasil AS SELECT H.nim, M.nama_mhs, K.nama_mtk, D.nama_dosen, U.nama_ujian, H.nilai FROM hasil_ujian AS H, mahasiswa AS M, matakuliah AS K, dosen AS D, jenis_ujian AS U WHERE (M.nim=H.nim) AND (U.kode_ujian=H.kode_ujian) AND (K.kode_mtk=H.kode_mtk) AND (D.kode_dosen=K.kode_dosen);
CONTOH PEMBUATAN OBJEK VIEW SELECT view_hasil.nim, view_hasil.nama_mhs, view_hasil.nama_ujian, view_hasil.nilai FROM view_hasil WHERE (view_hasil.nilai BETWEEN 70 AND 90);
Merubah Definisi Objek View Dengan perintah SQL: ALTER VIEW <view_name> AS <select_statement> Contoh: ALTER VIEW view_hasil AS SELECT H.nim, M.nama_mhs, K.nama_mtk, D.nama_dosen, U.nama_ujian, H.nilai FROM hasil_ujian AS H, mahasiswa AS M, matakuliah AS K, dosen AS D, jenis_ujian AS U WHERE (M.nim=H.nim) AND (U.kode_ujian=H.kode_ujian) AND (K.kode_mtk=H.kode_mtk) AND (D.kode_dosen=K.kode_dosen);
MENGHAPUS VIEW Contoh: DROP VIEW view_hasil; Menghapus keberadaan sebuah objek view dapat dilakukan dengan perintah SQL: DROP VIEW [IF EXISTS] <view_name>; Contoh: DROP VIEW view_hasil; DROP VIEW IF EXIXTS view_hasil;
Sekian dan Terimakasih