1. Judul Materi
Subquery
Bersarang
2. Kemampuan
Akhir Tahap Pembelajaran
Mahasiswa mampu memaksimalkan penggunaan query
dengan subquery
Bersarang.
3. Alat dan Bahan
Alat
dan bahan yang diperlukan adalah: PC/Laptop, XAMPP, PHPMyAdmin, CommandPrompt
atau Terminal.
4. Teori
Pada
pertemuan sebelumnya, mahasiswa belajar untuk memaksimalkan penggunaak query untuk multiple relations. Pada pertemuan ini mahasiswa diajarkan untuk
memaksimalkan query dengan subquery bersarang. Ada empat bagian pada pertemuan ini, yaitu subquery bersarang pada
SELECT, INSERT, UPDATE dan DELETE. Subquery
bersarang digunakan untuk beberapa kebutuhan. Misal untuk menginputkan data dimana terdapat
FK, tetapi seorang
DBA hanya mengetahui informasi atribut
lain selain PK di tabel referensinya. Subquery
bersarang dapat juga digunakan untuk menampilkan suatu data dimana
salah satu atributnya (FK misalkan) berada pada himpunan tertentu di tabel
referensinya. Serta masih banyak lagi permasalahan yang dapat dipecahkan dengan
menggunakan subquery bersarang.
5. Materi
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 karyawan, dalam barang yang diproduksi oleh Nike dan barang lainnya yang
diproduksi oleh Ardiles. 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:
Nama : “Sepatu Sneakers”
Jenis : Sepatu
Harga : 300000
Tanggal : 07-05-2019
Jumlah : 20
Produksi : Nike
Maka
Anda dapat menggunakan query bersarang berikut untuk tabel barang:
Gambar 7.2 Query bersarang
untuk menginputkan data barang
Sementara
untuk tabel barang_toko akan menjadi
lebih rumit, karena kita tidak tahu informasi id_karyawan dari Hairiyah dan Rani. Sedangkan PK dari barang_toko mengharuskan format kode
memuat id_barang dan id_karyawan. 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 barang_toko
Selanjutnya
Anda tinggal menuliskan perintah UPDATE:
7.3
UPDATE
Perhatikan
tampilan data barang dan produksi berikut:
Misalkan
ada kesalahan pada data di atas. Barang “Sepatu
Sneakers” seharusnya diproduksi oleh “Nike”.
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 barang yang
diterbitkan oleh Ando, maka query
yang dapat digunakan adalah sebagai berikut.
Gambar
7.5 Query bersarang untuk kasus DELETE
Jika
data barang ada yang dihapus, lalu bagaimana dengan tabel barang_toko? Karena sebelumnya membangun tabel barang_toko menggunakan ON
DELETE CASCADE, maka seharusnya data pada tabel tersebut akan otomatis ikut
hilang. Mari kita buktikan, tampilkan data pada tabel barang:
Terlihat
pada tabel tersebut tidak ada id_barang =
3, karena sudah dihapus menggunakan query sebelumnya. Sekarang kita tampilkan
tabel barang_toko:
Dapat
terlihat bahwa data dengan id_barang =
3 sudah tidak ada lagi.
Komentar
Posting Komentar