Prehľad typov pripojení na serveri SQL Server
Klauzula Join, kľúčové slovo JOIN je zlúčené do viacerých tabuliek do jednej sady výsledkov. Klauzula FROM bude musieť obsahovať všetky tabuľky. Každá tabuľka sa oddeľuje čiarkou WHERE.
Môžeme vložiť logický výraz, ktorý vráti true alebo false, a tieto výrazy môžu odkazovať na stĺpce vo všetkých tabuľkách.
Typy pripojení na serveri SQL Server
Existujú rôzne typy spojení
- CROSS JOIN
- VNÚTORNÝ PRIESTOR
- VONKAJŠIA SPOJENIE
- Vľavo mimo spojenia
- PRÁVO VONKAJŠÍM PRIPOJENÍM
- PLNÝ VONKAJŠÍ PRIESTOR
- ZAREGISTRUJTE SA
Pochopme podrobne každú z týchto spojení: -
1) Cross Cross
- Toto je najjednoduchšie spojenie
- Vracia všetky riadky z oboch tabuliek
- Žiadna klauzula WHERE
- Toto je tiež najmenej užitočné
- Je to veľmi neefektívne
- Vytvára karteziánsky produkt
- Predpokladané kľúčové slovo CROSS
príklad
Takže každý z prvej tabuľky s každým údajom z druhej tabuľky bez pokusu o akúkoľvek zhodu, takže toto nechcete robiť.
Vyhľadajte klauzulu FROM, kde máte viac tabuliek a neexistuje klauzula WHERE.
2) Vnútorné pripojenie
Výstup dopytu:
Vaše počiatočné a posledné riadky majú koordinačné hodnoty spojené s C2. Stredové riadky sa zvyčajne nestretávajú. Posledný konečný výsledok poskytuje všetky hodnoty cez počiatočný aj posledný riadok, zatiaľ však tento nevyhovujúci riadok strednej časti neobsahuje.
- Toto je najtypickejšie spojenie
- Toto zdôraznilo relačnú povahu databázy
- Umožňuje nám priradiť hodnotu stĺpca v jednej z tabuliek k hodnote stĺpca v inej tabuľke.
- Primárny kľúč v jednej z tabuliek a cudzí kľúč v jednej z ďalších tabuliek.
príklad
Tu je p.person_id náš primárny kľúč v našej tabuľke osôb,
email_address_person_id je náš cudzí kľúč v tabuľke e-mailových adries.
Pozrime sa na stôl osôb
Máme tie štyri riadky. A potom všetky zhody vo vnútri tabuľky e-mailových adries.
Nakoniec by mali mať troch ľudí, pretože máme osobu Shannon, ktorá nemá e-mailovú adresu
Výstup dopytu:
Takže údaje získame iba v prípade zhody medzi dvoma stĺpcami v každej z tabuliek
3) Vonkajšie pripojenie
- INNER JOIN sa nezaoberá NULL hodnotami
- VONKAJŠIA SPOJKA funguje, aj keď v druhej tabuľke nie je žiadna zhoda.
- NULL stĺpce, ak sa nezhodujú v druhej tabuľke
- FULL OUTER JOIN vráti všetky spojené riadky
- NULL, keď v žiadnej tabuľke neexistuje žiadna zhoda
a) Ľavé vonkajšie pripojenie
Výstup dopytu: Ste začiatočníci aj posledný riadok obsahuje koordinačné hodnoty spojené s C2. Stredové riadky sa zvyčajne nestretávajú. Posledný konečný výsledok by mohol ponechať všetky riadky prvej tabuľky, ale v skutočnosti vynechá nevyrovnaný riadok cez druhú tabuľku.
- Ďalší NULL-related JOIN
- Vrátia sa všetky riadky z ľavej strany
- NULL pre nezhodné tabuľky pravej strany
príklad
Výstup dopytu:
Všimnite si, že v tabuľke Osoba je jeden riadok, ktorý nemá hodnoty v tabuľke e-mailových adries. Takže LEFT OUTER JOIN nám dá.
b) Pravý vonkajší spoj
Výstup dopytu:
Ste začiatočníci aj posledný riadok obsahuje koordinačné hodnoty spojené s C2. Stredové riadky sa zvyčajne nestretávajú. Posledný konečný výsledok by mohol ponechať všetky riadky druhej tabuľky, ale v skutočnosti vynechá nevyrovnaný riadok cez prvú tabuľku.
- Naproti LEFT OUTER JOIN
- Vrátia sa všetky riadky z pravej strany
- NULL pre nezhodné tabuľky na ľavej strane
príklad Výstup dopytu:
Získame tri výsledky. Tu je náš výsledok PRAVÉ VONKAJŠIE PRIPOJENIE, kde máme riadok z tabuľky e-mailových adries, ktorý nemá zodpovedajúci riadok v pravej tabuľke.
4) Plné vonkajšie pripojenie
príklad
Výstup dopytu:
Spojíme výsledok LEFT OUTER JOIN a RIGHT OUTER JOIN
5) Vlastné pripojenie
- SELF nie je kľúčové slovo. Je to len táto myšlienka, že si môžete urobiť stôl sám
- Zvláštne, ale niekedy užitočné
- Žiadna špeciálna syntax
- Rovnaká tabuľka na ľavej a pravej strane JOIN
- Je to užitočné, keď tabuľka obsahuje hierarchické údaje
príklad
VYBRAŤ *
Z objednávok
Pripojte sa na odber
ON orders.subscription_id = subscriptions.subscription_id;
Dostaneme tabuľku objednávok a tabuľku odberov a pripojíme tabuľku pomocou SELECT všetkých stĺpcov.
Ak chcete získať výsledok.
záver:
Pripojenia sú spôsob, ako skutočne oživíme vzťahový model. Relačný model je o rozdelení údajov, normalizácii do viacerých tabuliek, ale ak chceme vidieť tieto vzťahy, dokážeme ich znova spojiť. A rôzne druhy spojení nám umožňujú robiť to trochu inak.
Odporúčané články
Toto bol sprievodca Typy pripojení na serveri SQL. Tu diskutujeme prehľad a typy spojení v SQL s ich príkladmi. Viac informácií nájdete aj v ďalších navrhovaných článkoch -
- Čo je to SQL Server?
- Kariéra v SQL Serveri
- PL Školenie
- Operátori MySQL
- Top 6 typov spojení v MySQL s príkladmi