Unutarnji dio vs Vanjski Pridružite se
Unutarnje pridruživanje i vanjsko pridruživanje dvije su SQL metode pridruživanja koje se koriste u obradi upita za baze podataka. Pripadaju obitelji klauzula za spajanje (ostale dvije su Levo i Desno spajanje). No, postoji Self Join koji se može koristiti u specijaliziranim situacijama. Svrha Join je kombiniranje polja koristeći zajedničke vrijednosti u dvije tablice. Ove se poveznice kombiniraju zapise iz više tablica u bazi podataka. Stvara rezultirajuće skupove, koje možete spremiti kao drugu tablicu.
Što je unutarnja povezanost?
Najčešće korištena operacija SQL pridruživanja je Unutarnje spajanje. Može se smatrati zadanom vrstom pridruživanja koja se koristi u aplikacijama. Unutarnja pridruživanja koristite predikat pridruživanja za kombiniranje dvije tablice. Pod pretpostavkom da su dvije tablice A i B, tada će predikat pridruživanja usporediti redove A i B kako bi pronašao sve parove koji zadovoljavaju predikat. Vrijednosti stupaca svih zadovoljnih redaka tablica A i B kombiniraju se kako bi se stvorio rezultat. Može se promatrati kao prvo uzimanje unakrsnog spajanja (kartezijanski proizvod) svih zapisa, a zatim vraćanje samo zapisa koji zadovoljavaju predikat pridruživanja. Međutim, u stvarnosti se kartuzijanski proizvod ne izračunava jer je vrlo neučinkovit. Umjesto toga koristi se Hash join ili sortiraj spajanje.
Što je vanjska povezanost?
Za razliku od toga, Unutrašnje pridruživanje, vanjsko pridruživanje vodi sve zapise čak i ako ne može pronaći odgovarajući zapis. To znači da je za vanjsko pridruživanje potreban zapis da bi pronašao odgovarajući zapis da bi se prikazao u rezultatu. Umjesto toga, vratit će sve zapise, ali neusporedivi zapisi će imati nulte vrijednosti. Vanjske veze su podijeljene u tri potkategorije. Oni su lijevi vanjski spoj, desni vanjski spoj i puni vanjski spoj. Ovo razlikovanje temelji se na tome koji se redak tablice (lijeva, desna ili obje tablice) zadržava kada se pronađu neusklađeni zapisi. Lijeva vanjska spajanja (poznata i kao jednostavno lijevo spajanje) čuva sve zapise lijeve tablice. To znači, čak i ako su zapisi koji se podudaraju sa brojem nula, tada će i dalje imati zapise u rezultatskoj tablici, ali će imati nulte vrijednosti za sve stupce B. Drugim riječima, sve vrijednosti iz lijeve tablice vraćaju se s podudarnim vrijednostima s desne strane tablice (ili null vrijednosti ako nema premca). Ako se vrijednosti iz više redaka iz lijeve tablice podudaraju s jednim retkom iz desne tablice, redak iz desne tablice ponavljat će se prema potrebi. Desni vanjski spoj prilično je sličan lijevom vanjskom spoju, ali tretman tablica je poštovan. To znači da će rezultat imati sve retke desne tablice barem jednom s podudarnim vrijednostima lijeve tablice (i nultu vrijednosti za neusklađene desne vrijednosti). Potpuno vanjsko spajanje je sveobuhvatnije od lijeve i desne vanjske spojnice. Rezultat je kombiniranje učinka primjene lijeve i desne vanjske strane spojene zajedno.
Koja je razlika između unutarnjeg pridruživanja i vanjskog spajanja?
Inner Join ne zadržava neusklađene redove u rezultatu, ali vanjsko pridruživanje će čuvati sve zapise iz barem jedne tablice (ovisno o tome koji je vanjski spoj pridružen). Dakle, ponašanje nepostojanja podataka u neusklađenim redovima u tablici rezultata je nepoželjno, uvijek morate koristiti jedan od vanjskih spojeva (umjesto unutrašnjeg spajanja). Unutarnje spajanje možda neće rezultirati rezultatom ako nisu pronađeni rezultati. Ali vanjsko spajanje uvijek će rezultirati rezultirajućom tablicom, čak i bez podudarnih redaka. Unutarnje pridruživanje će uvijek vraćati tablice s vrijednostima (ako se vraćaju). Ali vanjska spajanja mogu rezultirati tablicama s nulanim vrijednostima.