Jadual Kandungan
Pengenalan
Objektif pembelajaran utama
Jadual Kandungan
Memahami pertanyaan bersarang di SQL
Sintaks asas
Meneroka jenis pertanyaan bersarang di SQL
Subqueries baris tunggal dalam SQL
Menentukan ciri-ciri subqueries baris tunggal
Subqueries berbilang baris di SQL
Subqueries berkorelasi dalam SQL
Ciri -ciri subqueries berkorelasi
Subqueries bersarang di SQL
Struktur subqueries bersarang
Subqueries skalar
Ciri -ciri subqueries skalar
Aplikasi praktikal pertanyaan bersarang
Penapisan data berdasarkan nilai yang diperolehi
Pengiraan agregat
Pelaksanaan logik bersyarat
Pengiraan peringkat baris dengan subqueries berkorelasi
Mengelakkan perangkap pertanyaan bersarang biasa
Pelbagai baris pulangan di subqueries skalar
Degradasi prestasi
Keterlaluan kurungan
Pengendalian nilai null
Kesimpulan
Soalan yang sering ditanya
Rumah Peranti teknologi AI Pertanyaan bersarang di SQL

Pertanyaan bersarang di SQL

Apr 11, 2025 am 09:17 AM

Pengenalan

Bayangkan mencari perpustakaan yang luas yang mengandungi buku dengan buku bersarang di dalamnya. Untuk mencari maklumat khusus, anda mungkin perlu berunding dengan buku yang lebih kecil terlebih dahulu, kemudian gunakan maklumat tersebut untuk mencari yang lebih besar. Ini menggambarkan konsep pertanyaan bersarang di SQL. Pertanyaan -pertanyaan ini, yang tertanam di dalam yang lain, memudahkan pengekstrakan data kompleks. Panduan ini meneroka fungsi pertanyaan bersarang dan menunjukkan aplikasi mereka untuk pengurusan pangkalan data yang cekap.

Pertanyaan bersarang di SQL

Objektif pembelajaran utama

  • Pegang konsep pertanyaan bersarang (subqueries) dalam SQL.
  • Membina dan melaksanakan pertanyaan bersarang dalam pelbagai kenyataan SQL.
  • Membezakan antara pertanyaan bersarang yang berkorelasi dan tidak berkorelasi.
  • Mengoptimumkan pertanyaan SQL menggunakan struktur bersarang untuk meningkatkan prestasi.

Jadual Kandungan

  • Memahami pertanyaan bersarang di SQL
  • Meneroka jenis pertanyaan bersarang di SQL
  • Aplikasi praktikal pertanyaan bersarang
  • Mengelakkan perangkap pertanyaan bersarang biasa
  • Soalan yang sering ditanya

Memahami pertanyaan bersarang di SQL

Pertanyaan bersarang, juga dikenali sebagai subquery, adalah pertanyaan SQL yang tertanam di dalam yang lain. Output pertanyaan dalaman memberitahu pertanyaan luar, membolehkan pengambilan data kompleks. Ini amat berharga apabila hasil pertanyaan dalaman bergantung pada data pertanyaan luar.

Sintaks asas

 Pilih Column_name (s)  
Dari table_name  
Di mana column_name = (pilih column_name dari table_name di mana keadaan);
Salin selepas log masuk

Meneroka jenis pertanyaan bersarang di SQL

Pertanyaan bersarang (subqueries) memudahkan pengambilan data kompleks dengan membenamkan satu pertanyaan SQL di dalam yang lain. Ini penting untuk menulis kod SQL yang cekap dan canggih. Bahagian ini memperincikan pelbagai jenis pertanyaan bersarang dengan contoh dan output yang diharapkan.

Subqueries baris tunggal dalam SQL

Subquery baris tunggal menghasilkan satu atau lebih lajur dalam satu baris. Ia sering digunakan dengan pengendali perbandingan (=,>, =,

Menentukan ciri-ciri subqueries baris tunggal

  • Output baris tunggal: menghasilkan satu baris data.
  • Pengendali perbandingan: biasanya digunakan dengan pengendali perbandingan.
  • Pelbagai lajur mungkin: boleh mengembalikan pelbagai lajur dalam baris tunggal.

Contoh: Mengenal pasti pekerja yang berpendapatan melebihi purata gaji

Jadual: Pekerja

Pekerja_id First_name last_name gaji jabatan_id
1 John Doe 90000 1
2 Jane Smith 95000 1
3 Alice Johnson 60000 2
4 Bob Coklat 65000 2
5 Charlie Davis 40000 3
6 Hawa Adams 75000 3

Jadual: Jabatan

jabatan_id jabatan_name location_id
1 Jualan 1700
2 Pemasaran 1700
3 Ia 1800
4 Hr 1900
 Pilih first_name, last_name, gaji
Dari pekerja
Di mana gaji> (pilih AVG (gaji) dari pekerja);
Salin selepas log masuk

Output:

 <code>| first_name | last_name | salary | |------------|-----------|--------| | John | Doe | 90000 | | Jane | Smith | 95000 |</code>
Salin selepas log masuk

Pertanyaan dalaman mengira gaji purata. Pertanyaan luar kemudian memilih pekerja yang berpendapatan di atas purata ini.

Subqueries berbilang baris di SQL

Subqueries berbilang baris mengembalikan pelbagai baris. Mereka biasanya digunakan IN ANY atau ALL pengendali untuk membandingkan lajur terhadap satu set nilai.

Contoh: Mendapatkan pekerja dari jabatan tertentu

 Pilih first_name, last_name
Dari pekerja
Di mana jabatan_id masuk (pilih jabatan_id dari jabatan di mana location_id = 1700);
Salin selepas log masuk

Output:

 <code>| first_name | last_name | |------------|-----------| | John | Doe | | Jane | Smith |</code>
Salin selepas log masuk

Pertanyaan dalaman memilih ID jabatan dari lokasi tertentu. Pertanyaan luar kemudian mengambil pekerja yang bekerja di jabatan tersebut.

Subqueries berkorelasi dalam SQL

Subquery berkorelasi bergantung kepada pertanyaan luar untuk nilai -nilainya. Tidak seperti subqueries bebas, ia dilaksanakan secara dinamik untuk setiap baris yang diproses oleh pertanyaan luar.

Ciri -ciri subqueries berkorelasi

  • Ketergantungan pada pertanyaan luar: lajur rujukan pertanyaan dalaman dari pertanyaan luar.
  • Pelaksanaan baris demi baris: Pertanyaan dalaman berjalan berulang kali, sekali setiap baris dalam pertanyaan luar.
  • Implikasi prestasi: Pelaksanaan berulang boleh memberi kesan kepada prestasi pada dataset yang besar.

Contoh: Mengenal pasti pekerja yang lebih banyak daripada purata jabatan mereka

 Pilih first_name, gaji
Dari pekerja E1
Di mana gaji> (pilih avg (gaji) dari pekerja e2 di mana e1.department_id = e2.department_id);
Salin selepas log masuk

Output: (output bergantung kepada data dalam jadual employees )

Pertanyaan dalaman mengira gaji purata bagi setiap jabatan, berbanding dengan pekerja yang diproses oleh pertanyaan luar.

Subqueries bersarang di SQL

Subqueries bersarang melibatkan pembiakan satu subquery di dalam yang lain, mewujudkan struktur berlapis. Ini membolehkan manipulasi dan penapisan data yang kompleks.

Struktur subqueries bersarang

  • Pertanyaan luar: Pertanyaan utama yang mengandungi subqueries bersarang.
  • Pertanyaan dalaman (IES): subqueries yang tertanam dalam pertanyaan luar.

Contoh: Mengenal pasti jabatan dengan pekerja yang berpendapatan di atas purata

 Pilih jabatan_id, jabatan_name
Dari jabatan
Di mana jabatan_id masuk (
    Pilih jabatan_id
    Dari pekerja
    Di mana gaji> (pilih AVG (gaji) dari pekerja)
);
Salin selepas log masuk

Output: (output akan bergantung kepada data dalam jadual employees dan departments )

Subqueries skalar

Subquery skalar mengembalikan satu nilai (satu baris, satu lajur). Ia berguna di mana sahaja satu nilai diperlukan dalam pertanyaan utama.

Ciri -ciri subqueries skalar

  • Pulangan nilai tunggal: Mengembalikan hanya satu nilai.
  • Pelbagai Klausa Penggunaan: Boleh digunakan dalam SELECT , WHERE , dan HAVING klausa.
  • Perbandingan yang cekap: Berguna untuk perbandingan terhadap satu nilai yang diperolehi.

Contoh: Gaji pekerja berbanding dengan purata

 Pilih first_name, last_name, gaji - (pilih avg (gaji) dari pekerja) sebagai salary_difference
Dari pekerja;
Salin selepas log masuk

Output: (output bergantung kepada data dalam jadual employees )

Aplikasi praktikal pertanyaan bersarang

Pertanyaan bersarang sangat berharga untuk pelbagai senario pengambilan data yang kompleks:

Penapisan data berdasarkan nilai yang diperolehi

Pertanyaan bersarang dengan cekap menapis data berdasarkan nilai yang dikira dari jadual lain.

Pengiraan agregat

Agregat (contohnya, AVG, SUM, Count) yang dikira dalam pertanyaan bersarang boleh digunakan dalam pertanyaan luar untuk penapisan bersyarat.

Pelaksanaan logik bersyarat

Pertanyaan bersarang menyediakan mekanisme untuk menggabungkan logik bersyarat ke dalam kenyataan SQL.

Pengiraan peringkat baris dengan subqueries berkorelasi

Subqueries berkorelasi membolehkan perhitungan peringkat baris berdasarkan baris semasa dalam pertanyaan luar.

Mengelakkan perangkap pertanyaan bersarang biasa

Walaupun pertanyaan yang kuat dan bersarang dapat memperkenalkan masalah:

Pelbagai baris pulangan di subqueries skalar

Subquery skalar mesti mengembalikan satu nilai; Pelbagai baris akan menyebabkan kesilapan.

Degradasi prestasi

Pertanyaan bersarang, terutamanya yang berkorelasi, boleh memberi kesan kepada prestasi yang signifikan, terutamanya dengan dataset yang besar. Pertimbangkan pendekatan alternatif seperti bergabung.

Keterlaluan kurungan

Parentheses yang tidak betul boleh menyebabkan kesilapan logik dan hasil yang tidak dijangka.

Pengendalian nilai null

Berhati -hati mempertimbangkan bagaimana nilai nol dikendalikan untuk mengelakkan penapisan yang tidak diingini.

Kesimpulan

Pertanyaan bersarang SQL (subqueries) adalah alat yang berkuasa untuk pengambilan data kompleks yang cekap. Memahami pelbagai jenis-single-row, multi-row, berkorelasi, dan skalar-sangat penting untuk pengurusan pangkalan data yang berkesan. Dengan mengikuti amalan terbaik dan mengelakkan perangkap biasa, anda boleh memanfaatkan pertanyaan bersarang untuk meningkatkan kemahiran SQL anda dan mengoptimumkan prestasi pangkalan data.

Soalan yang sering ditanya

Q1. Apakah pertanyaan bersarang di SQL?

Pertanyaan bersarang, atau subquery, adalah pertanyaan SQL yang tertanam dalam pertanyaan lain. Hasil pertanyaan dalaman digunakan oleh pertanyaan luar untuk melakukan pengambilan data yang kompleks.

S2. Apakah jenis pertanyaan bersarang?

Jenis-jenis utama adalah subqueries berturut-turut, berbilang, berkorelasi, dan skalar, masing-masing sesuai dengan tugas yang berbeza.

Q3. Bilakah saya harus menggunakan subquery berkorelasi?

Gunakan subquery berkorelasi apabila pertanyaan dalaman perlu merujuk lajur dari pertanyaan luar untuk pemprosesan dinamik, baris demi baris.

Q4. Bolehkah pertanyaan bersarang mempengaruhi prestasi?

Ya, pertanyaan bersarang, terutama yang berkorelasi, dapat mempengaruhi prestasi yang signifikan. Mengoptimumkan dengan menganalisis rancangan pertanyaan dan mempertimbangkan alternatif seperti bergabung.

Atas ialah kandungan terperinci Pertanyaan bersarang di SQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Saya cuba pengekodan getaran dengan kursor AI dan ia menakjubkan! Saya cuba pengekodan getaran dengan kursor AI dan ia menakjubkan! Mar 20, 2025 pm 03:34 PM

Pengekodan Vibe membentuk semula dunia pembangunan perisian dengan membiarkan kami membuat aplikasi menggunakan bahasa semulajadi dan bukannya kod yang tidak berkesudahan. Diilhamkan oleh penglihatan seperti Andrej Karpathy, pendekatan inovatif ini membolehkan Dev

Top 5 Genai dilancarkan pada Februari 2025: GPT-4.5, Grok-3 & More! Top 5 Genai dilancarkan pada Februari 2025: GPT-4.5, Grok-3 & More! Mar 22, 2025 am 10:58 AM

Februari 2025 telah menjadi satu lagi bulan yang berubah-ubah untuk AI generatif, membawa kita beberapa peningkatan model yang paling dinanti-nantikan dan ciri-ciri baru yang hebat. Dari Xai's Grok 3 dan Anthropic's Claude 3.7 Sonnet, ke Openai's G

Bagaimana cara menggunakan Yolo V12 untuk pengesanan objek? Bagaimana cara menggunakan Yolo V12 untuk pengesanan objek? Mar 22, 2025 am 11:07 AM

Yolo (anda hanya melihat sekali) telah menjadi kerangka pengesanan objek masa nyata yang terkemuka, dengan setiap lelaran bertambah baik pada versi sebelumnya. Versi terbaru Yolo V12 memperkenalkan kemajuan yang meningkatkan ketepatan

Penjana Seni AI Terbaik (Percuma & amp; Dibayar) untuk projek kreatif Penjana Seni AI Terbaik (Percuma & amp; Dibayar) untuk projek kreatif Apr 02, 2025 pm 06:10 PM

Artikel ini mengkaji semula penjana seni AI atas, membincangkan ciri -ciri mereka, kesesuaian untuk projek kreatif, dan nilai. Ia menyerlahkan Midjourney sebagai nilai terbaik untuk profesional dan mengesyorkan Dall-E 2 untuk seni berkualiti tinggi dan disesuaikan.

Adakah chatgpt 4 o tersedia? Adakah chatgpt 4 o tersedia? Mar 28, 2025 pm 05:29 PM

CHATGPT 4 kini tersedia dan digunakan secara meluas, menunjukkan penambahbaikan yang ketara dalam memahami konteks dan menjana tindak balas yang koheren berbanding dengan pendahulunya seperti ChATGPT 3.5. Perkembangan masa depan mungkin merangkumi lebih banyak Inter yang diperibadikan

AI mana yang lebih baik daripada chatgpt? AI mana yang lebih baik daripada chatgpt? Mar 18, 2025 pm 06:05 PM

Artikel ini membincangkan model AI yang melampaui chatgpt, seperti Lamda, Llama, dan Grok, menonjolkan kelebihan mereka dalam ketepatan, pemahaman, dan kesan industri. (159 aksara)

Cara Menggunakan Mistral OCR untuk Model RAG Seterusnya Cara Menggunakan Mistral OCR untuk Model RAG Seterusnya Mar 21, 2025 am 11:11 AM

Mistral OCR: Merevolusi Generasi Pengambilan Pengambilan semula dengan Pemahaman Dokumen Multimodal Sistem Generasi Pengambilan Retrieval (RAG) mempunyai keupayaan AI yang ketara, membolehkan akses ke kedai data yang luas untuk mendapatkan respons yang lebih tepat

Pembantu Menulis AI Teratas untuk Meningkatkan Penciptaan Kandungan Anda Pembantu Menulis AI Teratas untuk Meningkatkan Penciptaan Kandungan Anda Apr 02, 2025 pm 06:11 PM

Artikel ini membincangkan pembantu penulisan AI terkemuka seperti Grammarly, Jasper, Copy.ai, WriteSonic, dan Rytr, yang memberi tumpuan kepada ciri -ciri unik mereka untuk penciptaan kandungan. Ia berpendapat bahawa Jasper cemerlang dalam pengoptimuman SEO, sementara alat AI membantu mengekalkan nada terdiri

See all articles