Dallimi midis bashkimit të brendshëm dhe bashkimit të jashtëm

Dallimi midis bashkimit të brendshëm dhe bashkimit të jashtëm
Dallimi midis bashkimit të brendshëm dhe bashkimit të jashtëm

Video: Dallimi midis bashkimit të brendshëm dhe bashkimit të jashtëm

Video: Dallimi midis bashkimit të brendshëm dhe bashkimit të jashtëm
Video: Çka është dallimi mes romëve, ashkalive dhe egjiptianëve? 2024, Korrik
Anonim

Bashkimi i brendshëm vs bashkimi i jashtëm

Bashkimi i brendshëm dhe bashkimi i jashtëm janë dy nga metodat e bashkimit SQL të përdorura në përpunimin e pyetjeve për bazat e të dhënave. Ato i përkasin familjes së klauzolave bashkuese (dy të tjerat janë Lidhja e Majtë dhe e Djathta). Megjithatë, ekziston një Self Join që mund të përdoret për situata të specializuara. Qëllimi i Join është të kombinojë fushat duke përdorur vlerat e përbashkëta për dy tabelat. Këto bashkime kombinojnë të dhëna nga tabela të shumta në një bazë të dhënash. Krijon grupe rezultante, të cilat mund të ruhen si një tabelë tjetër.

Çfarë është Inner Join?

Operacioni më i përdorur SQL Join është Inner Join. Mund të konsiderohet si lloji i paracaktuar i bashkimit që përdoret në aplikacione. Bashkimi i brendshëm përdor kallëzuesin bashkues për të kombinuar dy tabela. Duke supozuar se dy tabelat janë A dhe B, atëherë kallëzuesi bashkues do të krahasojë rreshtat e A dhe B për të gjetur të gjitha çiftet që plotësojnë kallëzuesin. Vlerat e kolonave të të gjitha rreshtave të kënaqur të tabelave A dhe B kombinohen për të krijuar rezultatin. Mund të shihet si fillimisht duke marrë bashkimin kryq (produkti kartezian) i të gjitha rekordeve dhe më pas duke kthyer vetëm regjistrimet që plotësojnë kallëzuesin bashkues. Megjithatë, në realitet, produkti kartezian nuk llogaritet sepse është shumë joefikas. Përkundrazi, përdoret bashkimi hash ose bashkimi i renditjes.

Çfarë është bashkimi i jashtëm?

Për dallim nga, bashkimi i brendshëm, bashkimi i jashtëm ruan të gjitha të dhënat edhe nëse nuk mund të gjejë një rekord që përputhet. Kjo do të thotë se bashkimi i jashtëm ka nevojë për një rekord për të gjetur një rekord që përputhet që ai të shfaqet në rezultat. Në vend të kësaj, ai do të kthejë të gjitha të dhënat, por të dhënat e pakrahasueshme do të kenë vlera nule. Lidhjet e jashtme ndahen në tre nën kategori. Ata janë bashkimi i jashtëm i majtë, bashkimi i jashtëm i djathtë dhe bashkimi i plotë i jashtëm. Ky diferencim bazohet në atë se cila rresht i tabelës (tabela e majtë, tabela djathtas ose të dyja tabelat) ruhet kur gjenden rekorde të pakrahasueshme. Lidhjet e jashtme të majta (të njohura edhe si thjesht lidhja e majtë) ruan të gjitha të dhënat e tabelës së majtë. Kjo do të thotë, edhe nëse rekordet që përputhen me numrat janë zero, atëherë do të ketë ende rekorde në tabelën e rezultateve, por do të ketë vlera nule për të gjitha kolonat e B. Me fjalë të tjera, të gjitha vlerat nga tabela e majtë kthehen me vlera të përputhura nga e djathta tabelë (ose vlera null kur nuk krahasohen). Nëse vlerat nga shumë rreshta nga tabela e majtë përputhen me një rresht të vetëm nga tabela e djathtë, rreshti nga tabela e djathtë do të përsëritet sipas nevojës. Lidhja e jashtme e djathtë është shumë e ngjashme me lidhjen e jashtme të majtë, por trajtimi i tabelave është i nderuar. Kjo do të thotë se rezultati do të ketë të gjitha rreshtat e tabelës djathtas të paktën një herë me vlera të përputhura të tabelës majtas (dhe vlera null për vlerat e djathta të pakrahasueshme). Lidhja e plotë e jashtme është më gjithëpërfshirëse se bashkimet e jashtme majtas dhe djathtas. Rezulton në kombinimin e efektit të aplikimit të pjesës së jashtme të majtë dhe të djathtë të bashkuar së bashku.

Cili është ndryshimi midis bashkimit të brendshëm dhe bashkimit të jashtëm?

Inner Join nuk i mban rreshtat e pakrahasueshëm në rezultat, por bashkimi i jashtëm do të mbajë të gjitha regjistrimet nga të paktën një tabelë (në varësi të asaj se cila bashkim i jashtëm është përdorur). Pra, sjellja e mungesës së informacionit për rreshtat e pakrahasueshëm në tabelën e rezultateve është e padëshirueshme, duhet të përdorni gjithmonë një nga bashkimet e jashtme (në vend të bashkimit të brendshëm). Lidhja e brendshme mund të mos prodhojë rezultat nëse nuk gjenden ndeshje. Por bashkimi i jashtëm gjithmonë do të prodhojë një tabelë rezultuese, edhe pa rreshta që përputhen. Lidhja e brendshme do të kthejë gjithmonë tabelat me vlera (nëse kthehen). Por bashkimet e jashtme mund të rezultojnë në tabela me vlera null.

Recommended: