Anda di halaman 1dari 6

RETNO XII RPL D 30 PRAKTIKUM VIEW

D. PRAKTIKUM

1. Himpunan Entitas

2. Menggunakan View
a. Ketikkan pernyataan pembuatan view vGetSiswa berikut:

b. Pemanggilan view tak ubahnya sebuah tabel


SELECT * FROM VGetSiswa;

c. Apabila diperlukan, kita juga diperkenankan melakukan penyaringan dengan view


SELECT * FROM vgetsiswa
WHERE jenis_kelamin = 'P';
RETNO XII RPL D 30 PRAKTIKUM VIEW

Untuk mendapatkan informasi mengenai pendefinisian view, gunakan perintah


SHOW CREATE VIEW nama_view;
SHOW CREATE VIEW VGetsiswa;

d. Sebagaimana objek-objek database lainnya view dapat dihapus menggunakan


perintah DROP
e. Apabila diperlukan, view yang sudah terdefinisi juga dapat dimodifikasi dengan
menggunakan perintah ALTER VIEW

3. View Kompleks

View dapat di definisikan suatu pernyataan yang kompleks, misalnya melibatkan fungsi
fungsi agregat, join bahkan subquery. Sebagai ilustrasi view berikut melibatkan join untuk
mendapatkan mata pelajaran yang tidak diambil oleh siswa terdaftar.

CREATE VIEW VJoin AS


SELECT mapel.kode_mapel, mapel.nama_mapel, mapel.jam_pel, mapel.semester
FROM mapel
LEFT JOIN
(siswa LEFT JOIN ambil_mapel
ON siswa.nis = ambil_mapel.nis)
ON mapel.kode_mapel = ambil_mapel.kode_mapel
WHERE ambil_mapel.kode_mapel IS NULL;

Contoh pemanggilan view vJOIN


SELECT * FROM VJoin;

Pada pendekaan subquery, view di atas dapat kita tuliskan sebagai berikut:
CREATE VIEW vsubquery AS
SELECT * FROM mapel
WHERE kode_mapel NOT IN
(SELECT kode_mapel
RETNO XII RPL D 30 PRAKTIKUM VIEW

FROM ambil_mapel, siswa


WHERE ambil_mapel.nis = siswa.nis);

Pemanggilan view VSubquery


SELECT * FROM vsubquery;

4. Nested View
a. Ketikkan pernyataan pembuatan view berikut
CREATE VIEW VMapel;
AS SELECT * FROM mapel;

b. Buat view baru yang merujuk pada view vMapel. Misalkan dengan tambahan predikat
semester = 5
CREATE VIEW vmapelBaru
AS SELECT * FROM vmapel
WHERE semester = 5;

c. Hasil pemanggilan masing-masing view sebagai berikut:


SELECT * FROM vmapel;
RETNO XII RPL D 30 PRAKTIKUM VIEW

SELECT * FROM vmapelBaru;

5. Updatable View
a. Ketikkan pernyataan view sederhana berikut
CREATE VIEW VUpdate AS
SELECT * FROM siswa;
b. Periksa terlebih dahulu hasil pengambilan data
SELECT * FROM vupdate;

c. Lakukan modifikasi pada viewvUpdate (perhatikan, bukan di tabel).


UPDATE vupdate
SET alamat = 'Jl. Tidar'
WHERE nis = 107;

d. Periksa hasil modifikasi di view


SELECT * FROM vupdate;
RETNO XII RPL D 30 PRAKTIKUM VIEW

e. Langkah selanjutnya periksa data di tabel siswa


SELECT * FROM siswa;

f. Terlihat bahwa modifikasi di view vUpdate akan mempengaruhi data di tabel siswa

E. LATIHAN SOAL
1. Buatlah view untuk mendapatkan nis dan nama siswa yang mengambil mapel di semester
3!
2. Buatlah view untuk mendapatkan nama guru yang mengajar mapel di semester 5!

JAWAB

1. tulis query
CREATE VIEW VNumber AS
SELECT siswa.nis, siswa.nama
FROM siswa
LEFT JOIN
(ambil_mapel RIGHT JOIN mapel
ON ambil_mapel.kode_mapel = mapel.kode_mapel)
WHERE siswa.nis = ambil_mapel.nis WHERE mapel.semester = 3

Hasil :
SELECT * FROM vnumber;

2. Tulis View
CREATE VIEW VNumberNew AS SELECT DISTINCT guru.nama_guru FROM guru
INNER JOIN mapel
ON guru.kode_guru = mapel.kode_guru
WHERE mapel.semester = 5
RETNO XII RPL D 30 PRAKTIKUM VIEW

Hasil :
SELECT * FROM vnumbernew;

Anda mungkin juga menyukai