Belső csatlakozás vs külső csatlakozás
A belső és a külső csatlakozás két olyan SQL csatlakozási módszer, amelyet az adatbázisok lekérdezés-feldolgozásában használnak. A csatlakozási záradékok családjába tartoznak (másik kettő a bal és a jobb csatlakozás). Van azonban egy öncsatlakozás, amely speciális helyzetekben használható. A Join célja a mezők közös értékekkel történő összekapcsolása a két tábla között. Ezek a csatlakozások egyesítik az adatbázis több táblájának rekordjait. Eredményes halmazokat hoz létre, amelyeket egy másik táblázatként menthetünk.
Mi a belső csatlakozás??
A leggyakrabban használt SQL csatlakozási művelet a belső csatlakozás. Ez az alkalmazásokban használt alapértelmezett csatlakozási típusnak tekinthető. Belső csatlakozás: használja a join-predátumot két tábla összekapcsolásához. Feltételezve, hogy a két táblázat A és B, akkor az egyesítő predátum összehasonlítja az A és B sorokat, hogy megtudja az összes párt, amely kielégíti a predikátumot. Az eredményt az A és B táblák minden elégedett sorának oszlopértékeivel kombináljuk. Úgy tekinthető, hogy először az összes rekord kereszteződését (derékszögű termék) vesszük, majd csak azokat a rekordokat adjuk vissza, amelyek kielégítik az összekapcsolódási predikátumot. Valójában azonban a derékszögű terméket nem számítják ki, mert nagyon nem hatékony. Ehelyett a hash join vagy sort-merge csatlakozást használják.
Mi a külső csatlakozás??
A belső csatlakozással ellentétben a külső csatlakozás az összes rekordot megőrzi, még akkor sem, ha nem talál megfelelő egységet. Ez azt jelenti, hogy a külső csatlakozáshoz rekordra van szükség ahhoz, hogy megfelelő eredményt találjon az eredményben való megjelenítéshez. Ehelyett az összes rekordot visszaadja, de a páratlan rekordoknak null értékeik lesznek. A külső csatlakozásokat három alkategóriára osztják. Bal oldali külső csatlakozás, jobb oldali külső csatlakozás és teljes külső illesztés. Ez a megkülönböztetés annak alapján történik, hogy melyik táblázat (bal, jobb vagy mindkét táblázat) sorát megtartják, ha páratlan rekordokat találnak. A bal oldali külső csatlakozások (más néven egyszerűen bal oldali csatlakozások) megőrzik a bal oldali asztal összes rekordját. Ez azt jelenti, hogy akkor is, ha a száma megegyező rekordok nulla, akkor az eredménytáblában továbbra is vannak rekordok, de a B összes oszlopában null értékek vannak. Más szavakkal, a bal oldali táblázat összes értéke a jobb oldali párosított értékekkel kerül vissza. táblázat (vagy null értékek, ha nem egyezik meg). Ha a bal oldali táblából származó több sor értékei megegyeznek a jobb oldali táblázat egyetlen sorával, akkor a jobb oldali táblázat sorát meg kell ismételni. A jobb oldali külső illesztés nagyjából hasonlít a bal oldali külső illesztésre, de az asztalok kezelése tiszteletben tartja. Ez azt jelenti, hogy az eredménynek legalább egyszer megtalálható a jobb oldali táblázat minden sora egyeztetett bal oldali táblázatértékekkel (és null értékek az egyeztetés nélküli jobb értékeknél). A teljes külső illesztés átfogóbb, mint a bal és a jobb külső illesztés. Ennek eredményeként összekapcsolódik a bal és a jobb oldali külső összeillesztés hatása.
Mi a különbség a belső csatlakozás és a külső csatlakozás között??
A Belső Csatlakozás nem tartja a páratlan sorokat az eredményben, de a külső illesztés megőrzi az összes rekordot legalább egy táblából (attól függően, hogy melyik külső illesztést használták). Tehát az a viselkedés, hogy az eredménytáblázatban a páratlan sorokon nincs információ, nem kívánatos, mindig a külső illesztések egyikét kell használni (a belső illesztés helyett). A belső csatlakozás nem eredményez eredményt, ha nem található egyezés. De a külső csatlakozás mindig eredményes táblát eredményez, még illeszkedő sorok nélkül is. A belső csatlakozás mindig az értékeket tartalmazó táblákat adja vissza (ha visszatérnek). De a külső illesztések null értékű táblákat eredményezhetnek.