Kueri SQL adalah daging dan kentang dari RDBMS CRUD (buat, baca, perbarui, hapus). Namun ketika aplikasi atau database perusahaan Anda berkembang, kebutuhan akan kueri cerdas untuk mengambil data khusus persyaratan dan bersyarat menjadi keharusan.
SQL relatif komprehensif, mencakup banyak fungsi—masing-masing sangat cocok untuk berbagai penggunaan bisnis. Salah satu fungsi tersebut mencakup penggunaan sub-kueri.
Untuk membuat kode Anda efisien dan efektif, Anda dapat menggunakan sub-kueri dalam kode SQL Anda untuk mengambil data, memanipulasi variabel yang ada, dan mencapai banyak tujuan sekaligus.
Apa Itu Sub-Kueri SQL?
Sub-kueri adalah kueri bersarang, yang berfungsi sebagai parameter dalam kueri utama lainnya. Sub-kueri adalah pertanyaan batin, sedangkan pertanyaan utamanya adalah pertanyaan luar.
Sub-kueri seharusnya mengembalikan data sebagai argumen dalam kurung untuk kueri utama, sedangkan kueri utama selanjutnya mengambil hasil akhir.
Sub-kueri tertanam di dalam Pilih pernyataan atau dalam
Di mana ayat. Struktur seperti itu memungkinkan sub-kueri untuk berperilaku sebagai kondisi penyaringan data yang dijelaskan dengan baik. Sayangnya, sub-kueri hanya dapat menggunakan Grup Oleh perintah dan bukan Dipesan oleh perintah, karena hanya diizinkan dalam kueri utama.Terkait: Semua yang Perlu Anda Ketahui Tentang Pernyataan SQL GROUP BY
Biasanya, setiap sub-kueri terdiri dari satu kolom dengan Pilih ayat. Namun, ada skenario di mana kueri utama memiliki beberapa kolom. Sub-kueri dapat disarangkan dalam sub-kueri lain, menjadikannya sub-kueri bersarang.
Striktur sub-kueri adalah sebagai berikut:
Pilih column_name dari tabel di mana condition=
(SELECT conditional_column FROM table) sebagai alias;
Misalnya, Anda memiliki tabel berikut:
Indo | Nama depan | Nama kedua | Biaya_agen |
1 | John | Sumbu | 5000 |
2 | Robert | Graham | 4000 |
3 | Stefanus | Hicks | 8000 |
4 | Bob | marley | 1000 |
5 | Maria | Ellen | 9000 |
Dalam tabel ini, untuk menarik nama-nama orang yang berpenghasilan di atas rata-rata biaya agensi, Anda dapat menulis sub-kueri, alih-alih menulis beberapa baris kode.
Terkait: Cara Membuat Tabel di SQL
Begini tampilan kuerinya:
Pilih * dari agent_details
di mana Agency_Fee > (pilih rata-rata (Agency_Fee) dari agent_details);
Perintah sebelum > tanda adalah kueri luar, sedangkan, semuanya setelah > tanda adalah permintaan batin.
Kueri dalam akan menghitung biaya agensi rata-rata dalam subkueri, dan kueri luar akan menampilkan semua nilai yang lebih besar dari nilai rata-rata yang dihitung.
Bagaimana Cara Menggunakan Sub-Kueri dalam SQL?
Ada beberapa cara berbeda di mana Anda dapat menggunakan sub-kueri dalam SQL.
Sub-Kueri Dengan Klausa Where
Salah satu struktur paling dasar dari sub-query dalam SQL ada di dalam klausa Where. Ini adalah cara paling sederhana untuk menentukan apa yang Anda cari. Pernyataan pilih mengembalikan nilai sesuai dengan kondisi sub-kueri dan menggunakannya sebagai parameter untuk kueri utama.
Struktur kueri:
pilih * dari table_name
di mana nama_kolom = (pilih nama_kolom dari nama_tabel);
Mari kita jelaskan ini dengan sebuah contoh.
Misalkan Anda ingin mencari biaya agensi tertinggi kedua dari tabel agency_details. Untuk melakukannya, ada fungsi alternatif dalam SQL; meskipun demikian, metode terbaik adalah menggunakan sub-kueri.
Inilah cara Anda mendefinisikan sub-kueri:
pilih *, maks (Biaya_agen)
dari agent_details
dimana Agency_fee < (pilih maks (Agency_fee) dari agent_details);
Pernyataan yang dihasilkan akan menunjukkan kepada Anda 8000, yang merupakan biaya tertinggi kedua dalam tabel yang diberikan. Saat kueri berjalan, sub-kueri menghitung nilai maksimum dari daftar biaya. Jumlah biaya tertinggi (9000) disimpan dalam memori.
Setelah bagian ini dihitung, bagian kedua dari kueri dihitung, yang menemukan biaya tertinggi kedua dari tabel (sejak < tanda yang digunakan). Hasil akhirnya adalah 8000, yang merupakan biaya tertinggi kedua dalam tabel.
Sub-Kueri Dalam Klausa Dari
Variasi lain dalam sub-kueri melewati kondisi di dari ayat. Sebagai konsep serupa, kueri dalam diproses terlebih dahulu, dan kueri luar diproses setelahnya. Kueri dalam akan memfilter data dan menampilkan hasil di mana ID = 3.
Inilah kueri untuk referensi:
pilih a.* dari (
pilih agency_fee dari agent_details
dimana ID= 3) sebagai a;
Ini adalah struktur yang sangat mendasar; namun, semakin kompleks tabel data Anda, Anda akan mendapatkan lebih banyak baris data, yang sesuai dengan kondisi Anda.
Menggunakan Sub-Kueri Dengan Sisipkan Ke Pernyataan
Jika Anda ingin memperbarui tabel yang ada dengan beberapa baris data baru, Anda dapat menggunakan Masukkan ke dalam penyataan. Sub-kueri terbukti cukup bermanfaat, jika Anda ingin menambahkan nilai berdasarkan kondisi tertentu.
Struktur kueri:
masukkan ke table_name
pilih * dari table_name
di mana nama_kolom = kondisi;
pilih * dari table_name;
Berikut adalah contoh bagaimana Anda dapat menggunakan pernyataan insert into dengan sub-query:
masukkan ke agent_details
pilih * dari agent_details
di mana biaya_agensi di (1000, 5000);
pilih * dari agent_details;
Setelah kueri berjalan, nilai yang cocok dengan kondisi akan dimasukkan kembali ke tabel yang ada. Itu Pilih * reference mengambil semua kolom bersama-sama, dan memasukkannya ke dalam tabel agent_details apa adanya. Itu di pernyataan digunakan untuk mendefinisikan beberapa kondisi filter sekaligus.
Menggunakan Sub-Kueri Dengan Pernyataan Pembaruan
Ada situasi di mana Anda ingin memperbarui tabel yang mendasarinya saat menjalankan kueri. Untuk melakukannya, Anda dapat menggunakan memperbarui pernyataan bersama dengan perintah query.
Ini adalah bagaimana Anda akan menulis sub-kueri untuk memperbarui informasi dalam tabel dalam satu contoh:
perbarui nama_tabel
atur nama_kolom = nilai_baru
di mana nama_kolom =
(pilih nama_kolom dari nama_tabel di mana = );
Berikut adalah contoh yang menunjukkan penggunaan pernyataan pembaruan:
UPDATE agen_detail
SET agency_fee = 35000
WHERE agency_fee =
(PILIH agency_fee FROM agent_details WHERE First_name='John');
pilih * dari agent_details;
Sub-kueri akan memfilter pada kolom agency_fee dan memilih baris yang cocok dengan First_Name John. Kueri luar dijalankan selanjutnya, di mana biaya agensi diperbarui menjadi 35000 untuk John Wick.
Anda dapat melewati Pilih * pernyataan untuk memeriksa hasil akhir; Anda akan melihat biaya agensi untuk John Wick diperbarui menjadi 35000, karena hanya ada contoh yang cocok dengan ketentuan yang ditentukan dalam kueri.
Menggunakan Sub-Kueri Dengan Pernyataan Hapus
Sama seperti pernyataan pembaruan, di mana Anda memperbarui baris data dalam tabel yang ada, menghapus pernyataan menghapus baris (s) data berdasarkan suatu kondisi.
Struktur pernyataan hapus adalah:
hapus dari table_name di mana nama variabel/kolom =
(pilih column_name dari table_name di mana = kondisi);
Berikut ini contohnya:
Hapus dari agent_details
dimana First_name IN
(pilih First_name dari agent_details di mana agency_fee = 9000);
pilih * dari agent_details;
Menggunakan Sub-Kueri Dalam SQL
Sub-kueri adalah fitur luar biasa dalam SQL, yang dapat menyelamatkan Anda dari menulis baris kode yang tidak perlu tanpa henti. Ketika Anda dapat menggunakan fungsionalitas dasar sub-kueri untuk melakukan penawaran, Anda tidak akan pernah ingin khawatir tentang kerumitan pengkodean SQL.
Itu selalu yang terbaik untuk meningkatkan pengetahuan SQL Anda yang ada untuk memastikan Anda selalu di atas permainan Anda. Yakinlah, lembar contekan SQL dapat memberi Anda ide bagus tentang cara memoles dasar-dasar Anda dalam sekali pandang.
Ingin mempelajari lebih lanjut tentang SQL? Memiliki pegangan pada berbagai perintah kueri SQL adalah cara yang bagus untuk maju.
Baca Selanjutnya
- Pemrograman
- Pemrograman
- SQL
- Alat Pemrograman
Gaurav Siyal memiliki dua tahun pengalaman menulis, menulis untuk serangkaian perusahaan pemasaran digital dan dokumen siklus hidup perangkat lunak.
Berlangganan newsletter kami
Bergabunglah dengan buletin kami untuk kiat teknologi, ulasan, ebook gratis, dan penawaran eksklusif!
Klik di sini untuk berlangganan