Minggu, 06 Oktober 2019

BAB 7 SUBQUERY BERSARANG



7.1     SELECT

Berdasarkan kasus yang sudah ada, ada beberapa permasalahan yang mungkin saja agak rumit jika diselesaikan dengan query SQL dasar. Misal Anda diminta untuk menampilkan data pengarang, yang pada tahun 2017 bukunya diterbitkan oleh Erlangga dan pada tahun 2016 bukunya diterbitkan oleh Andi.
Untuk menyelesaikan ini Anda dapat menggunakan subquery bersarang:

Gambar 7. 1 Query bersarang untuk kasus SELECT
DISTINCT digunakan untuk jika dalam suatu tampilan data terdapat baris yang duplikat (lebih dari satu baris dengan isi yang sama), maka hanya ditampilkan satu baris data saja. 

7.2     INSERT

Jika Anda diminta untuk memasukkan data baru, dimana memiliki detail sebagai berikut:
Iddesa             : null
Namadesa        : Ranggang
Idkegiatan       : null
Idpemberitahuan : 11
Maka Anda dapat menggunakan query bersarang berikut untuk tabel desa:

Gambar 7. 2 Query bersarang untuk menginputkan data desa

Sementara untuk tabel kegiatan akan menjadi lebih rumit, karena kita tidak tahu informasi idkegiatan. Sedangkan PK dari desa mengharuskan format kode memuat iddesa dan idkegiatan. Hal tersebut bukan masalah, Anda dapat memasukkan kode dummy terlebih dahulu, yang kemudian Anda bisa update nantinya. Misal:
Gambar 7. 3 Query bersarang untuk menginputkan data kegiatan

Selanjutnya Anda tinggal menuliskan perintah UPDATE: 

7.3     UPDATE

Perhatikan tampilan data buku dan penerbit berikut:

 
Misalkan ada kesalahan pada data di atas. Id kegiatan Maka query bersarang yang bisa Anda gunakan adalah:

Gambar 7. 4 Query bersarang untuk kasus UPDATE

7.4     DELETE

Sama seperti kasus sebelumnya, jika diminta untuk menghapus data desa yang  kegiatan, maka query yang dapat digunakan adalah sebagai berikut:

Gambar 7. 5 Query bersarang untuk kasus DELETE
Jika data desa ada yang dihapus, lalu bagaimana dengan tabel kegiatam?
Karena sebelumnya membangun tabel desa menggunakan ON DELETE CASCADE, maka seharusnya data pada tabel tersebut akan otomatis ikut hilang. Mari kita buktikan, tampilkan data pada tabel desa menggunakan select * from desa;

Tidak ada komentar:

Posting Komentar

TUGAS BESAR PPEMROGRAMAN VISUAL