![...](/f/14c7ca74d0accf01184229f710faeb14.jpg)
Kueri basis data mengambil informasi spesifik dari basis data.
Subquery adalah kueri dalam kueri lain. Sebuah subquery juga mungkin berisi subquery lain. Ini dikatakan sebagai subkueri "bersarang". Gabung adalah ketika dua atau lebih tabel direferensikan dalam klausa "Dari" kueri. Mesin basis data yang berbeda dapat mengoptimalkan subkueri dan bergabung secara berbeda. Misalnya, pengoptimal DB2 akan mengubah subquery menjadi gabungan jika kriteria tertentu terpenuhi. Dalam beberapa kasus, gabungan menghasilkan kinerja yang lebih baik daripada subquery.
Apa yang Membuat Sebuah Subquery?
Subquery adalah pernyataan "PILIH" dalam klausa "WHERE" atau "HAVING" dari pernyataan "INSERT," "UPDATE," "MERGE" atau "DELETE" di luar. Subquery juga disebut "inner query" atau "inner select." Subquery mungkin memiliki klausa "FROM" dengan satu atau lebih tabel dan secara opsional memiliki klausa "WHERE", "GROUP BY" atau "HAVING". Itu selalu diapit dalam tanda kurung.
Video Hari Ini
Keuntungan dan Kerugian Subquery
Subquery menguntungkan karena mereka menyusun kueri untuk mengisolasi setiap bagian dari pernyataan, melakukan operasi yang sama yang biasanya memerlukan penggabungan dan penyatuan yang kompleks dan lebih mudah untuk Baca. Subqueries bahkan menjadi dasar untuk nama "Structured Query Language" (SQL) karena strukturnya yang mudah dibaca. Kerugiannya adalah Anda tidak dapat mengubah tabel dan memilih dari tabel yang sama dalam subquery dalam pernyataan SQL yang sama. Subquery juga bisa memakan waktu lebih lama untuk dieksekusi daripada bergabung karena cara pengoptimal database memprosesnya.
Apa yang Membuat Anda Bergabung?
Sebagian besar subkueri dapat ditulis ulang sebagai gabungan, dan sebagian besar gabungan dapat ditulis ulang sebagai subkueri. Gabung mendefinisikan dua atau lebih tabel dengan kolom terkait. Tabel biasanya digabungkan pada kunci utama dan kunci asing. Misalnya, tabel karyawan mungkin memiliki kunci utama kolom id karyawan, sedangkan tabel absen juga memiliki kolom id karyawan yang merupakan kunci asing ke tabel karyawan. Gabung SQL dapat ditulis sebagai "WHERE employee.empid = timesheet.empid" atau "FROM employee JOIN timesheet ON (employee.empid = timesheet.empid)."
Keuntungan dan Kerugian Bergabung
Keuntungan utama bergabung adalah eksekusinya lebih cepat. Peningkatan kinerja mungkin tidak terlihat oleh pengguna akhir. Namun, karena kolom secara khusus diberi nama dan diindeks dan dioptimalkan oleh mesin database, waktu pengambilan hampir selalu akan lebih cepat daripada subquery. Ada juga sambungan dalam dan luar, sambungan kiri dan kanan, sambungan penuh, dan sambungan silang. Kerugian menggunakan join adalah tidak mudah dibaca seperti subquery. Kerugian lainnya adalah dapat membingungkan join mana yang merupakan tipe join yang tepat untuk digunakan untuk menghasilkan kumpulan hasil yang diinginkan dengan benar.