Disyorkan, 2024

Pilihan Editor

Perbezaan Antara Sertai Kiri, Kanan dan Penuh Luar

Terdahulu, kami telah membincangkan perbezaan di antara Join and Outer Join, di mana kami telah melihat lebih banyak jenis Orang Luar Luar. Bergabung Luar adalah orang yang memelihara tuple dalam hasil yang akan hilang semasa Bergabung dengan operasi. Dalam artikel ini; kita akan membincangkan perbezaan di antara jenis-jenis Join Outer. Terdapat tiga jenis Sertai Luar; Sertai Left Outer, Right Outer Join, dan Join Outer Full. Sertai Kiri, Kanan, dan Lengkap Lengkap berbeza dalam pelan pelaksanaannya, dan hasilnya diperolehi. Kita boleh meninggalkan perkataan Luar dari Kiri, Kanan, dan Sertai Luar Penuh. Mari kita periksa perbezaan di antara Kiri, Kanan dan Luas Penuh Bersama dengan bantuan carta perbandingan yang ditunjukkan di bawah.

Carta Perbandingan

Asas untuk PerbandinganLeft Outer JoinSertai Luar TepatSertai Luar Penuh
AsasSemua tuple dari jadual kiri masih dalam hasilnya.Semua tuple jadual kanan kekal dalam hasilnya.Kesemua tupel dari kiri dan jadual kanan kekal dalam hasilnya.
Sambungan NULLTupel meja kiri yang tidak mempunyai tuple padanan dalam jadual kanan dilanjutkan dengan nilai NULL untuk atribut jadual kanan.Tupel meja kanan yang tidak mempunyai tuple yang sepadan dalam jadual kiri dilanjutkan dengan nilai NULL untuk atribut jadual kiri.
Tupel kiri dan jadual kanan yang tidak mempunyai tupel padanan dalam jadual kanan dan kiri masing-masing dilanjutkan dengan nilai NULL untuk atribut jadual kanan dan kiri.

Definisi Kehilangan Luar Left

Katakan kita ada, " Table_A Left Outer Join Table_B ". Jadi Table_A adalah jadual kiri kami kerana kelihatan kiri operasi Left Outer Join dan Table_B adalah jadual kanan kami.

Pada mulanya, gabungan dalaman akan diterapkan pada Table_A dan Table_B yang akan mengembalikan semua tuple yang sepadan dari jadual A dan B.

Seterusnya, ia akan mengembalikan semua tupel dari Table_A yang tidak mempunyai tuple yang sepadan dalam Table_B. Seperti itu, tupel yang dihasilkan akan menjadi empuk dengan nilai NULL untuk sifat-sifat jadual yang betul.

Oleh itu, hasil yang diperolehi dari Left Outer Join mengekalkan semua tuple dari meja kiri dan hanya padanan tuple dari meja kanan.

Marilah kita membincangkan Kiri Luar Bergabung dengan contoh; kami mempunyai dua jadual di bawah, Jadual Pelajar dan Jadual Jabatan .

Sekarang, kami akan memohon Sertai Kiri Luar, pada Jadual Pelajar dan Jabatan.

PILIH * DARI KELAYAKAN Pelajar LEFT OUTER JOIN
ON Pelajar. Student_ID = Department.Student_ID

Dalam pertanyaan di atas, jadual Pelajar adalah jadual kiri dan jadual Jabatan adalah jadual yang betul. Oleh itu, menurut Left Outer Join, hasilnya mesti mempunyai semua tupel dari jadual Pelajar, dan hanya tuples yang sepadan dari jadual Jabatan.

Perhatikan hasil yang diperolehi dari Left Outer Join; ia mempunyai semua tuple dari jadual Pelajar bersama dengan tupel yang sepadan dari jadual Pelajar dan Jabatan. Student_id Jimmy, Joseph Harry dari jadual Pelajar tidak hadir di meja Jabatan. Oleh itu, nilai atribut jadual Jabatan untuk Jimmy, Joseph Harry diperluaskan kepada NULL.

Definisi Sertai Luar Tepat

Katakan kita ada, " Table_A Right Outer Join Table_B ". Oleh itu Table_A adalah jadual kiri kami kerana kelihatan kiri dari Operasi Join Outer Right dan Table_B adalah jadual kanan kami.

Seperti di Left Outer Join, pada mulanya, gabungan dalaman akan diterapkan pada Table_A dan Table_B yang akan mengembalikan semua tuple yang sepadan dari jadual A dan B.

Seterusnya, ia akan mengembalikan semua tupel dari Table_B yang tidak mempunyai tuple yang sepadan dalam Table_A. Seperti itu, tupel yang dihasilkan akan menjadi empuk dengan nilai NULL untuk atribut dari jadual kiri.

Oleh itu, hasil yang diperoleh dari bahagian luar kanan mengekalkan semua tuple dari jadual kanan dan hanya tuple yang sepadan dari jadual kiri.

Marilah kita membincangkan Hak Luar Bergabung dengan contoh; di atas kita mempunyai dua jadual, Jadual Pelajar dan Jadual Jabatan.

Sekarang, kami akan menerapkan Sertai Luar Tua ke Meja Pelajar dan Jabatan.

PILIH * DARIPADA PENGARAH KELUARGA KELUARGA KELUARGA
ON Pelajar. Student_ID = Department.Student_ID

Dalam pertanyaan di atas, Jadual Pelajar adalah Jadual Kiri kami dan Jadual Jabatan adalah jadual hak kami. Mengikut operasi Outer Join Right, hasilnya mesti memasukkan semua tuple dari meja Jabatan dan hanya tupel yang sepadan dari Jadual Pelajar.

Perhatikan hasil yang diperoleh daripada menyertai luar kanan; ia mempunyai semua tuple dari jadual Jabatan bersama-sama dengan tuisyen yang sepadan dari jadual Pelajar dan Jabatan. Student_ID 10536 dan 00954, jadual Jabatan, tidak hadir dalam jadual Pelajar. Oleh itu, nilai atribut Nama untuk Pelajar_ID 10536 dan 00954 dilanjutkan kepada NULL.

Definisi gabungan Sepenuh Luar

Katakan kita ada, " Table_A Full Outer Join Table_B ". Jadi Table_A adalah jadual kiri kami kerana kelihatannya kiri operasi Kendali Luar Penuh dan Table_B adalah jadual kanan kami.

Sertai Outer Penuh adalah gabungan kedua-dua, Sertai Left Outer dan Right Outer Join . Pada mulanya, ia memohon pertalian batin di Table_A dan Table_B untuk mengambil semula tupsel yang sepadan dari kedua-dua jadual. Kemudian ia memanjangkan tupel Table_A dengan NULL yang tidak mempunyai tuple padanan dalam Table_B. Selanjutnya, ia memanjangkan tupel dari Table_B dengan NULL yang tidak mempunyai tuple yang sepadan dalam Table_A.

Oleh itu, Full Outer Join mengekalkan semua tuple dari sebelah kiri serta meja kanan, bersama-sama dengan tupel yang sama dari kedua-dua jadual.

Marilah kita berbincang FULL Outer Join dengan contoh; kami mempunyai dua jadual di atas, Jadual Pelajar dan Jadual Jabatan .

Sekarang, kami akan memohon Sertai Penuh Penuh ke jadual Pelajar dan Jabatan.

PILIH * DARIPADA JELAS TINGKATAN Pelajar Penuh OLEH
ON Pelajar. Student_ID = Department.Student_ID

Dalam pertanyaan di atas, Jadual Pelajar adalah jadual kiri kami dan Jadual Jabatan adalah jadual hak kami. Mengikut Sertai Luar Penuh, hasilnya harus mencakup semua tupel dari kedua meja.

Perhatikan hasil yang diperoleh daripada gabungan luar penuh; ia mempunyai semua tupel dari jadual Pelajar dan Jabatan bersama-sama dengan tuisyen sepadan dari jadual Pelajar dan Jabatan. Student_id dari Jimmy, Joseph Harry masing-masing 10026, 02256, 56362, jadual Pelajar, tidak hadir di meja Jabatan. Oleh itu, nilai atribut jadual Jabatan untuk Jimmy, Joseph Harry diperluaskan kepada NULL . Student_ID 10536 dan 00954, jadual Jabatan, tidak hadir dalam ruang Student_ID jadual Pelajar. Oleh itu, nilai atribut atribut Nama untuk Pelajar_ID 10536 dan 00954 dilanjutkan kepada NULL .

Perbezaan Utama Antara Sertai Kiri, Kanan dan Penuh Luar

  1. Hasil dari Left Outer Join mempunyai semua tuple of left table. Demikian pula, hasil dari Right Outer Join mempunyai semua tuple of the right table. Dan hasil dari Outer Full Join mempunyai semua tupel dari kiri dan kanan meja.
  2. Dalam Left Outer Join, tuple of left table yang tidak mempunyai tuple yang hampir sama di meja kanan diperpanjang dengan nilai Null untuk sifat-sifat meja yang tepat. Sebaliknya adalah kes bagi Sertai Luar Tepat. Dan dalam Bahagian Luar Penuh, tupel dari jadual kiri dan kanan yang tidak mempunyai tuple padanan di jadual kanan dan kiri masing-masing dilanjutkan dengan NULL untuk atribut jadual kanan dan kiri.

Kesimpulan:

Jaga kedudukan nama jadual dalam pertanyaan. Sebagai kedudukan nama jadual dalam query memutuskan sama ada jadual itu akan dianggap sebagai jadual kiri atau jadual kanan.

Top