Modul Praktikum Sistem Basis Data .............................................................................. 68
D. TEORI DASAR
1. Sub Query
Sub query merupakan query yang digunakan dalam sebuah query untuk keperluan tertentu. Sub query biasanya digunakan sebagai sumber data berupa sebuah kumpulan
rekord record set dari query utamanya, dan bukan menjadi hasil akhir dari perintah query secara keseluruhan. Secara logika, kumpulan rekord record set hasil dari sub query
menyerupai sebuah tabel utuh yang berdiri sendiri namun tidak secara fisik tabel maya.
Hasil dari sebuah sub query yang menggunakan perintah SELECT dengan berbagai pilihan field yang berasal satu atau banyak tabel, biasanya diletakkan setelah 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 kedalaman sub query. Artinya dalam sebuah sub query bisa saja terdapat sub query di dalamnya sub sub query. Level
kedalaman sub query bisa saja tercipta seiring dengan kompleksitas syarat data yang ingin dihasilkan.
2. Objek View
Objek view merupakan tabel virtual maya berisi sekumpulan rekord record set yang berasal dari satu atau banyak tabel. View sebenarnya adalah sebuah definisi dalam
bahasa SQL untuk menghasilkanmelihat sekumpulan rekord record set yang berasal dari satu atau banyak tabel. Definisi tersebuat selanjutnya diberi nama atau pelabel. Jika nama
atau label tersebut dipanggil maka mesin server database akan menghasilkan sebuah tabel baru yang merupakan tabel maya.
Dengan adanya objek view, maka dari sebuah tabel atau gabungan beberapa tabel akan dapat menghasilkan berbagai macam bentuk informasi sesuai dengan format yang
dinginkan. Setiap view yang tercipta, akan dipandang sebagai sebuah tabel tersendiri walaupun sebenarnya tabel maya. Sehingga hanya dengan cara yang sederhana yaitu
dengan memanggil view-nya SELECT FROM view_name, sebenarnya kita telah melakukan akses data dari satu atau lebih tabel yang terdefinisi dalam view yang dimaksud.
Sintak dasar membuat objek view adalah dengan perintah SQL sebagai berikut;
CREATE [OR REPLACE] VIEW view_name AS select_statement;
Modul Praktikum Sistem Basis Data .............................................................................. 69
Perintah CREATE digunakan apabila kita akan membuat sebuah objek view baru, sedangkan tambahan perintah OR REPLACE pilihanoptional, digunakan jika kita akan
membuat view baru danatau sekaligus merubah definisi dari view yang dimaksud. Merubah definisi sebuah objek view dapat juga dilakukan dengan memberikan
perintah SQL sebagai berikut;
ALTER VIEW view_name AS select_statement;
Menghapus keberadaan sebuah objek view dapat dilakukan dengan perintah SQL sebagai berikut;
DROP VIEW [IF EXISTS] view_name; Penggunaan perintah tambahan IF EXISTS dalam menghapus sebuah objek view, jika
view yang dimaksud tidak ada di dalam database, maka perintah penghapusan tidak dianggap salah.
E. LANGKAH-LANGKAH PRAKTIKUM
Guna membantu pemahaman kita dalam menggunakan nama alias, pengelompokan data dengan perintah GROUP BY dan penyaringan data hasil pengelompokan data dengan
perintah HAVING, lakukan beberapa perintah query berikut ini; a.
Melakukan query data dari sebuah Sub Query mysqlSELECT DSN.,
-FROM -
- SELECT - FROM DOSEN
- WHERE nama_dosen LIKE A - AS DSN;
mysqlSELECT 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 hsl_ujian AS H, mahasiswa AS M, matakuliah AS K, dosen AS D,
- 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;
b. Membuat dan menghapus objek View
Modul Praktikum Sistem Basis Data .............................................................................. 70
mysqlCREATE VIEW view_hasil AS - SELECT H.nim, M.nama_mhs, K.nama_mtk, D.nama_dosen, H.nilai
- FROM hsl_ujian AS H, mahasiswa AS M, matakuliah AS K, dosen AS D, - WHERE M.nim=H.nim AND K.kode_mtk=H.kode_mtk
- AND D.kode_dosen=K.kode_dosen;
mysqlCREATE OR REPLACE VIEW view_hasil AS - SELECT H.nim, M.nama_mhs, K.nama_mtk, D.nama_dosen, U.nama_ujian,
- H.nilai - FROM hsl_ujian AS H, mahasiswa AS M, matakuliah AS K, dosen AS D,
- 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;
mysqlSELECT HASIL.nim, HASIL.nama_mhs, HASIL.nama_ujian, HASIL.nilai -FROM view_hasil;
-WHERE HASIL.nilai BETWEEN 70 AND 90;
mysqlALTER VIEW view_hasil AS - SELECT H.nim, M.nama_mhs, K.nama_mtk, D.nama_dosen, U.nama_ujian,
- H.nilai - FROM hsl_ujian AS H, mahasiswa AS M, matakuliah AS K, dosen AS D,
- 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;
mysqlDROP VIEW view_hasil; mysqlDROP VIEW IF EXISTS view_hasil;
F. TUGAS