cari
RumahPeranti teknologiAIPertanyaan bersarang di SQL

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);

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);

Output:

 <code>| first_name | last_name | salary | |------------|-----------|--------| | John | Doe | 90000 | | Jane | Smith | 95000 |</code>

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);

Output:

 <code>| first_name | last_name | |------------|-----------| | John | Doe | | Jane | Smith |</code>

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);

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)
);

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;

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
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
Cara Membina Pembantu AI Peribadi Anda Dengan Huggingface SmollmCara Membina Pembantu AI Peribadi Anda Dengan Huggingface SmollmApr 18, 2025 am 11:52 AM

Memanfaatkan kuasa AI di peranti: Membina CLI Chatbot Peribadi Pada masa lalu, konsep pembantu AI peribadi kelihatan seperti fiksyen sains. Bayangkan Alex, seorang peminat teknologi, bermimpi seorang sahabat AI yang pintar, yang tidak bergantung

AI untuk Kesihatan Mental dianalisis dengan penuh perhatian melalui inisiatif baru yang menarik di Stanford UniversityAI untuk Kesihatan Mental dianalisis dengan penuh perhatian melalui inisiatif baru yang menarik di Stanford UniversityApr 18, 2025 am 11:49 AM

Pelancaran AI4MH mereka berlaku pada 15 April, 2025, dan Luminary Dr. Tom Insel, M.D., pakar psikiatri yang terkenal dan pakar neurosains, berkhidmat sebagai penceramah kick-off. Dr. Insel terkenal dengan kerja cemerlangnya dalam penyelidikan kesihatan mental dan techno

Kelas Draf WNBA 2025 memasuki liga yang semakin meningkat dan melawan gangguan dalam talianKelas Draf WNBA 2025 memasuki liga yang semakin meningkat dan melawan gangguan dalam talianApr 18, 2025 am 11:44 AM

"Kami mahu memastikan bahawa WNBA kekal sebagai ruang di mana semua orang, pemain, peminat dan rakan kongsi korporat, berasa selamat, dihargai dan diberi kuasa," kata Engelbert, menangani apa yang telah menjadi salah satu cabaran sukan wanita yang paling merosakkan. Anno

Panduan Komprehensif untuk Struktur Data Terbina Python - Analytics VidhyaPanduan Komprehensif untuk Struktur Data Terbina Python - Analytics VidhyaApr 18, 2025 am 11:43 AM

Pengenalan Python cemerlang sebagai bahasa pengaturcaraan, terutamanya dalam sains data dan AI generatif. Manipulasi data yang cekap (penyimpanan, pengurusan, dan akses) adalah penting apabila berurusan dengan dataset yang besar. Kami pernah meliputi nombor dan st

Tayangan pertama dari model baru Openai berbanding dengan alternatifTayangan pertama dari model baru Openai berbanding dengan alternatifApr 18, 2025 am 11:41 AM

Sebelum menyelam, kaveat penting: Prestasi AI adalah spesifik yang tidak ditentukan dan sangat digunakan. Dalam istilah yang lebih mudah, perbatuan anda mungkin berbeza -beza. Jangan ambil artikel ini (atau lain -lain) sebagai perkataan akhir -sebaliknya, uji model ini pada senario anda sendiri

AI Portfolio | Bagaimana untuk membina portfolio untuk kerjaya AI?AI Portfolio | Bagaimana untuk membina portfolio untuk kerjaya AI?Apr 18, 2025 am 11:40 AM

Membina portfolio AI/ML yang menonjol: Panduan untuk Pemula dan Profesional Mewujudkan portfolio yang menarik adalah penting untuk mendapatkan peranan dalam kecerdasan buatan (AI) dan pembelajaran mesin (ML). Panduan ini memberi nasihat untuk membina portfolio

AI AI apa yang boleh dimaksudkan untuk operasi keselamatanAI AI apa yang boleh dimaksudkan untuk operasi keselamatanApr 18, 2025 am 11:36 AM

Hasilnya? Pembakaran, ketidakcekapan, dan jurang yang melebar antara pengesanan dan tindakan. Tak satu pun dari ini harus datang sebagai kejutan kepada sesiapa yang bekerja dalam keselamatan siber. Janji Agentic AI telah muncul sebagai titik perubahan yang berpotensi. Kelas baru ini

Google Versus Openai: AI berjuang untuk pelajarGoogle Versus Openai: AI berjuang untuk pelajarApr 18, 2025 am 11:31 AM

Impak segera berbanding perkongsian jangka panjang? Dua minggu yang lalu Openai melangkah ke hadapan dengan tawaran jangka pendek yang kuat, memberikan akses kepada pelajar A.S. dan Kanada.

See all articles

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 laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

PhpStorm versi Mac

PhpStorm versi Mac

Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma