Az illesztési típusok áttekintése az SQL Server-ben
A Csatlakozási záradék, a JOIN kulcsszó több táblát egyesít egy eredménykészletbe. A FROM záradéknak tartalmaznia kell az összes táblát. Az egyes táblákat vesszővel, WHERE záradékkal választja el, külön-külön mellékelve.
Beilleszthetjük a logikai kifejezést, amely igaz vagy hamis értéket ad vissza, és ezek a kifejezések az összes táblázat oszlopaira vonatkozhatnak.
Csatlakozás típusai az SQL Server-ben
Különböző típusú csatlakozások léteznek
- CSATLAKOZÁS
- BELSŐ ÖSSZEKAPCSOLÁS
- KÜLSŐ CSATLAKOZÁS
- Bal oldali csatlakozás
- JOGI KÜLSŐ CSATLAKOZÁS
- TELJES KÜLSŐ CSATLAKOZÁS
- ÖN CSATLAKOZÁS
Megértjük a következő csatlakozások részleteit:
1) Cross Join
- Ez a legegyszerűbb JOIN
- Visszaadja az összes sort mindkét táblázatból
- Nincs WHERE záradék
- Ez szintén a legkevésbé hasznos
- Nagyon nem hatékony
- Dekartéziai terméket hoz létre
- CROSS kulcsszó
Példa
Tehát mindenki az első táblától kezdve, minden adattal a második táblától kezdve, bármiféle egyeztetés megkísérlése nélkül, tehát ezt nem akarod megtenni.
Keressen FROM záradékot, ahol több táblája van, és nincs WHERE záradék.
2) Belső csatlakozás
Lekérdezés kimenete:
Az első és az utolsó sor koordinációs értékeket kapott a C2-vel kapcsolatban. A középső sorok általában nem felelnek meg. Az utolsó végeredmény az összes értéket megadja a kezdő és az utolsó sorokon keresztül, de nem tartalmazza azt a nem megfelelő középső szakasz sort.
- Ez a legjellemzőbb JOIN
- Ez hangsúlyozta az adatbázis relációs jellegét
- Ez lehetővé teszi, hogy az egyik táblázat oszlopértékét egy másik táblázat oszlopértékéhez igazítsuk.
- Az elsődleges kulcs az egyik táblában és egy idegen kulcs a többi táblában.
Példa
Itt a p.person_id az elsődleges kulcs a személytáblánkban,
Az email_address_person_id az idegen kulcs a mi e-mail cím táblázatban.
Vessen egy pillantást a személyasztalra
Megvan a négy sor. És akkor az összes egyezést az e-mail címtáblában.
Tehát végül három embert kell beszereznie, mert van olyan személyünk, Shannon, akinek nincs e-mail címe
Lekérdezés kimenete:
Tehát az adatokat csak akkor kapjuk meg, ha egyezést találunk a két oszlop között az egyes táblákban
3) Külső csatlakozás
- Az INNER JOIN nem foglalkozik a NULL értékekkel
- A KÜLSŐ CSATLAKOZÁS akkor is működik, ha nincs egyeztetés a második asztalnál.
- NULL oszlop, ha nincs egyezés a második táblázatban
- TELJES KÜLSŐ CSATLAKOZÁS Az összes csatlakozott sor visszaadása
- NULL, ha egyik asztalnál sem található egyezés
a) Bal oldali csatlakozás
Lekérdezés kimenete: Ön is a kezdeti és az utolsó sorok koordinációs értékei vannak a C2-vel kapcsolatban. A középső sorok általában nem felelnek meg. Az utolsó végeredmény megőrizheti az első asztal összes sorát, de valójában kihagyja az egyeztetés nélküli sort a második táblán.
- Egy másik NULL-hoz kapcsolódó JOIN
- A bal oldali összes sor visszatér
- NULL a nem megfelelő jobb oldali asztalhoz
Példa
Lekérdezés kimenete:
Észre veszi, hogy a Személy táblázatban van egy sor, amelynek nincs értéke az e-mail cím táblázatában. Tehát a bal oldali csatlakozás ad nekünk.
b) Jobb külső csatlakozás
Lekérdezés kimenete:
Ön is a kezdeti és az utolsó sorok koordinációs értékei vannak a C2-vel kapcsolatban. A középső sorok általában nem felelnek meg. Az utolsó végeredmény megtarthatja a második asztal összes sorát, de valójában kihagyja az egyeztetés nélküli sort az első táblán.
- A bal oldali külső csatlakozás
- A jobb oldalon lévő összes sor visszatér
- NULL egy nem egyező bal oldali asztalhoz
Példa Lekérdezés kimenete:
Három eredményt kapunk. Itt van a JOBB KÜLSŐ CSATLAKOZÁS eredménye, ahol az e-mail címtáblázat sorában van a megfelelő sor a jobb oldali táblában.
4) Teljes külső csatlakozás
Példa
Lekérdezés kimenete:
Össze kell kapcsolnunk a LEFT OUTER JOIN és a JOBB OUTER JOIN eredményt
5) Önálló csatlakozás
- A SELF nem kulcsszó. Csak ez az ötlet, hogy ön is táblát készíthet
- Furcsa, de néha hasznos
- Nincs speciális szintaxis
- Ugyanaz a táblázat a JOIN bal és jobb oldalán
- Hasznos, ha egy táblázat hierarchikus adatokat tartalmaz
Példa
KIVÁLASZT *
Megrendelésektől
Csatlakozz előfizetésekhez
BE order.subscription_id = előfizetések.subscription_id;
Megrendeléstáblázatot és előfizetési táblát kapunk, és CSATLAKOZTATHATÓ az asztal kiválasztásával az összes oszlop kiválasztásával.
Az eredmény elérése érdekében.
Következtetés:
A csatlakozások az, amellyel valóban életre keljük a relációs modellt. A relációs modell arról szól, hogy az adatokat elkülönítjük, több táblává normalizáljuk, de újra össze tudjuk hozni azokat, amikor ezeket a kapcsolatokat szeretnénk látni. És a különféle csatlakozások lehetővé teszik számunkra, hogy kissé eltérő módon tegyük ezt.
Ajánlott cikkek
Ez egy útmutató az SQL szerver csatlakozási típusaihoz. Itt az példákkal tárgyaljuk az SQL csatlakozások áttekintését és típusait. A további javasolt cikkeken keresztül további információkat is megtudhat -
- Mi az SQL Server?
- Karrier az SQL Server-en
- PL SQL oktatás
- MySQL operátorok
- A MySQL 6 legfontosabb csatlakozási típusa példákkal