Dalam tutorial ini kita akan membahas Menggunakan Subquery di MySQL dan Perintah Terkait. Dalam kondisi tertentu, ketika kita bekerja menggunakan database yang besar dan kompleks, mungkin kita perlu melakukan kueri yang lebih kompleks dan tidak hanya memilih data dari satu tabel saja. Misalnya kita ingin mencari data berdasarkan hasil dari kueri sebelumnya, atau mungkin kita ingin menggabungkan data dari beberapa tabel untuk mendapatkan informasi yang lebih lengkap. Dalam kondisi seperti itulah kita membutuhkan Subquery dan termasuk juga perintah terkait di MySQL.
Dalam postingan tutorial ini, akan diberikan penjelasan tentang konsep subquery dan perintah terkait dengan contoh tabel “Toko Buku” yang telah kita buat pada tutorial-tutorial sebelumnya.
Apa Itu Subquery?
Sebuah subquery adalah kueri yang disisipkan di dalam kueri utama. Subquery biasanya digunakan untuk mengembalikan satu nilai atau satu set hasil (subquery bersifat set). Subquery biasanya ditempatkan di dalam klausa WHERE, HAVING, atau FROM sebuah pernyataan SQL.
Mari kita lihat contoh penggunaan subquery dengan tabel “Toko Buku.”
Contoh Penggunaan Subquery dalam Klausa WHERE
Misalkan kita ingin menemukan semua buku yang memiliki harga lebih tinggi dari rata-rata harga semua buku dalam database. kita dapat menggunakan subquery untuk mencari rata-rata harga terlebih dahulu, lalu membandingkannya dengan harga buku dalam tabel “Buku”
1 2 3 | SELECT judul, harga FROM buku WHERE harga > (SELECT AVG(harga) FROM buku); |
Dalam contoh di atas, subquery (SELECT AVG(harga) FROM buku)
digunakan untuk menghitung rata-rata harga buku. Kemudian, kita memilih semua buku yang memiliki harga di atas nilai rata-rata ini.
Apa Itu Perintah Terkait?
Perintah terkait adalah pernyataan SQL yang tergantung pada hasil dari pernyataan SQL lainnya. Mereka dapat digunakan untuk menggabungkan data dari beberapa tabel, mengubah data berdasarkan hasil pernyataan lain, atau menghapus data yang terkait dengan data dari pernyataan lain.
Mari kita lihat contoh penggunaan perintah terkait dengan tabel “Toko Buku”.
Contoh Penggunaan Perintah Terkait untuk Menggabungkan Data
kita mungkin ingin membuat laporan yang mencakup semua buku bersama dengan nama penulis dan nama kategori bukunya. Dalam hal ini, kita dapat menggunakan perintah terkait untuk menggabungkan data dari tabel “Buku”, “Penulis”, dan “Kategori Buku”.
1 2 3 4 | SELECT buku.judul, penulis.nama_penulis, kategori_buku.nama_kategori FROM buku INNER JOIN penulis ON buku.id_penulis = penulis.id_penulis INNER JOIN kategori_buku ON buku.id_kategori = kategori_buku.id_kategori; |
Dalam contoh di atas, saya menggunakan perintah terkait untuk menggabungkan data dari tiga tabel yang berbeda.
Kombinasi Subquery dan Perintah Terkait
Ketika kita bekerja dengan database yang lebih kompleks, sering kali kita akan menemukan bahwa kita perlu menggabungkan konsep subquery dan perintah terkait. Mari kita lihat contoh yang lebih kompleks.
Contoh Penggunaan Subquery dalam Perintah Terkait
Misalkan kita ingin menemukan penulis yang telah menulis lebih dari satu buku dalam kategori tertentu. Dalam hal ini, kita dapat menggunakan subquery dalam perintah terkait.
1 2 3 4 5 6 7 8 | SELECT penulis.id_penulis, penulis.nama_penulis FROM penulis WHERE ( SELECT COUNT(*) FROM buku WHERE buku.id_penulis = penulis.id_penulis AND buku.id_kategori = 1 ) > 1; |
Dalam contoh ini, subquery digunakan untuk menghitung berapa banyak buku yang telah ditulis oleh setiap penulis dalam kategori buku dengan ID 1. Perintah terkait kemudian mengambil penulis yang memiliki lebih dari satu buku dalam kategori ini.
Dari uraian panjang di atas, dapat kita tarik kesimpulan bahwa Subquery dan perintah terkait adalah alat atau perintah dalam SQL yang memungkinkan kita untuk melakukan kueri yang lebih kompleks dan canggih pada database kita. Dalam postingan tutorial ini, kami telah mengenalkan kita pada konsep subquery dan perintah terkait dengan contoh tabel “Toko Buku” yang telah sama-sama kita buat sebelumnya.
Daftar atau list tutorial MySQL dapat anda lihat diĀ Index Tutorial MySQL: Belajar MySQL Dari Dasar.