Perbezaan Antara Pertalian dalam dan Luar Negeri

Anonim

Inner Join vs Outer Join

Inner join dan Outer join adalah dua kaedah bergabung SQL yang digunakan dalam pemprosesan pertanyaan untuk pangkalan data. Mereka tergolong dalam keluarga untuk menyatukan klausa (dua lagi adalah Kiri dan Kanan). Walau bagaimanapun, terdapat Self Join yang boleh digunakan untuk situasi khusus. Tujuan Gabungan adalah menggabungkan medan menggunakan nilai-nilai bersama ke dua jadual. Gabung ini menggabungkan rekod dari pelbagai jadual dalam pangkalan data. Ia mewujudkan set hasil, yang boleh disimpan sebagai jadual lain.

Apa yang dimaksudkan oleh Inner?

SQL yang sering digunakan Sertai operasi adalah Inner Join. Ia boleh dianggap sebagai jenis gabungan lalai yang digunakan dalam aplikasi. Masuk dalaman menggunakan predikat gabungan untuk menggabungkan dua jadual. Dengan mengandaikan kedua-dua jadual adalah A dan B, maka predikat gabungan akan membandingkan baris A dan B untuk mengetahui semua pasangan yang memenuhi predikat tersebut. Nilai kolom bagi semua baris yang dipenuhi jadual A dan B digabungkan untuk menghasilkan hasil. Ia boleh dilihat sebagai pertama mengambil salib bergabung (produk Cartesian) semua rekod dan kemudian kembali hanya rekod yang memenuhi predikat gabungan. Walau bagaimanapun, dalam kenyataannya, produk Cartesian tidak dikira kerana ia sangat tidak cekap. Hash join atau sort-merge join digunakan sebaliknya.

Apa itu Sertai Luar ?

Tidak seperti, gabungan dalaman, gabungan luar menyimpan semua rekod walaupun ia tidak dapat mencari rekod yang sepadan. Ini bermakna bahagian luar memerlukan rekod untuk mencari rekod sepadan untuk muncul dalam hasilnya. Sebaliknya, ia akan memulangkan semua rekod, tetapi rekod yang tidak dapat ditandingi akan mempunyai nilai nol. Penggabung luar terbahagi kepada tiga kategori sub. Mereka dibiarkan bersama luar, menyertai luar kanan dan menyertai luar penuh. Pembezaan ini didasarkan pada jadual mana jadual (jadual kiri, jadual kanan atau kedua-dua jadual) dikekalkan apabila rekod yang tidak dapat ditandingi dijumpai. Meninggalkan luar kiri (juga dikenali sebagai hanya kiri menyertai) mengekalkan semua rekod jadual kiri. Ini bermakna, walaupun rekod padanan nombor adalah sifar, maka ia masih mempunyai rekod dalam jadual hasil, tetapi akan mempunyai nilai nol untuk semua lajur B. Dengan kata lain, semua nilai dari jadual kiri dikembalikan dengan nilai yang dipadankan dari kanan jadual (atau nilai batal ketika tidak dapat ditandingi). Jika nilai dari berbilang baris dari jadual kiri dipadankan dengan satu baris dari jadual kanan, baris dari jadual kanan akan diulang seperti yang diperlukan. Sambungan luar kanan hampir sama dengan bahagian luar kiri, tetapi rawatan meja dihormati. Ini bermakna hasilnya akan mempunyai semua baris jadual kanan sekurang-kurangnya sekali dengan nilai meja kiri yang dipadankan (dan nilai-nilai nol untuk nilai-nilai yang tidak dapat ditandingi). Sambungan luar penuh lebih komprehensif daripada kedua-dua belah kiri dan kanan. Ini mengakibatkan gabungan kedua-dua bahagian kiri dan kanan bergabung bersama.

Apakah perbezaan di antara Join and Outer Join?

Inner Join tidak menyimpan baris yang tidak dapat ditandingi dalam hasilnya, tetapi gabungan luar akan menyimpan semua rekod dari sekurang-kurangnya satu meja (bergantung kepada mana yang dilampirkan untuk digunakan). Oleh itu, tingkah laku tidak mempunyai maklumat yang hadir pada baris yang tidak dapat ditandingi dalam jadual hasil adalah tidak diingini, anda perlu sentiasa menggunakan salah satu daripada gabungan luar (di tempat penyambung batin). Gabungan dalaman mungkin tidak menghasilkan hasil jika tiada padanan ditemui. Tetapi gabungan luar akan selalu menghasilkan meja yang dihasilkan, walaupun tanpa baris yang hampir sama. Gabungan dalaman akan sentiasa mengembalikan jadual dengan nilai (jika dikembalikan). Tetapi sambungan luaran boleh mengakibatkan jadual dengan nilai nol.