Co je to Připojit se k DBMS?
Join in DBMS je binární operace, která umožňuje kombinovat produkt join a výběr v jednom prohlášení. Cílem vytvoření podmínky spojení je, že vám pomůže zkombinovat data ze dvou nebo více tabulek DBMS. Tabulky v DBMS jsou přidruženy pomocí primárního klíče a cizích klíčů.
V tomto výukovém programu DBMS se naučíte:
- Typy spojení
- Vnitřní spojení
- Theta Připojte se
- Připojení EQUI:
- Přirozené spojení (⋈)
- Vnější připojení
- Levý vnější spoj (A B)
- Pravý vnější spoj (A B)
- Úplné vnější spojení (A B)
Typy spojení
V DBMS existují hlavně dva typy spojení:
- Vnitřní spojení: Theta, Natural, EQUI
- Vnější spoj: vlevo, vpravo, plný
Podívejme se na ně podrobně:
Vnitřní spojení
INNER JOIN se používá k vrácení řádků z obou tabulek, které splňují danou podmínku. Je to nejpoužívanější operace připojení a lze ji považovat za výchozí typ připojení
Vnitřní spojení nebo equijoin je spojení založené na komparátoru, které používá srovnání rovnosti v predikátu spojení. Pokud však používáte jiné srovnávací operátory jako „>“, nelze jej nazvat equijoin.
Vnitřní spojení se dále dělí na tři podtypy:
- Theta se připoj
- Přirozené spojení
- Připojte se k EQUI
Theta Připojte se
THETA JOIN umožňuje sloučit dvě tabulky na základě podmínky představované theta. Theta se připojuje k práci pro všechny srovnávací operátory. Je označen symbolem θ . Obecný případ operace JOIN se nazývá spojení Theta.
Syntax:
A ⋈θ B
Theta join může v kritériích výběru použít jakékoli podmínky.
Zvažte následující tabulky.
Tabulka A | Tabulka B | |||
sloupec 1 | sloupec 2 | sloupec 1 | sloupec 2 | |
1 | 1 | 1 | 1 | |
1 | 2 | 1 | 3 |
Například:
A ⋈ A.column 2 > B.column 2 (B)
A ⋈ A. sloupec 2> B. sloupec 2 (B) | |
sloupec 1 | sloupec 2 |
1 | 2 |
Připojte se EQUI
EQUI JOIN se provádí, když spojení Theta používá pouze podmínku ekvivalence. Spojení EQUI je nejobtížnější operace, kterou lze efektivně implementovat v RDBMS, a jedním z důvodů, proč mají RDBMS zásadní problémy s výkonem.
Například:
A ⋈ A.column 2 = B.column 2 (B)
A ⋈ A. sloupec 2 = B. sloupec 2 (B) | |
sloupec 1 | sloupec 2 |
1 | 1 |
Přirozené spojení (⋈)
NATURAL JOIN nevyužívá žádný z operátorů porovnání. V tomto typu spojení by měly mít atributy stejný název a doménu. V přirozeném spojení by měl být mezi dvěma vztahy alespoň jeden společný atribut.
Provádí rovnost tvorby výběru u těch atributů, které se objevují v obou vztazích, a eliminuje duplicitní atributy.
Příklad:
Zvažte následující dvě tabulky
C | |
Num | Náměstí |
2 | 4 |
3 | 9 |
D | |
Num | Krychle |
2 | 8 |
3 | 18 |
C ⋈ D
C ⋈ D | ||
Num | Náměstí | Krychle |
2 | 4 | 8 |
3 | 9 | 18 |
Vnější připojení
OUTER JOIN nevyžaduje každý záznam ve dvou spojení tabulek mít odpovídající záznam. V tomto typu spojení si tabulka zachová každý záznam, i když neexistuje žádný jiný odpovídající záznam.
Tři typy vnějších spojení jsou:
- Levý vnější spoj
- Pravý vnější spoj
- Úplné vnější připojení
Levý vnější spoj (A B)
LEFT JOIN vrátí všechny řádky z tabulky nalevo, i když v tabulce napravo nebyly nalezeny žádné odpovídající řádky. Pokud v tabulce napravo nebyl nalezen žádný odpovídající záznam, vrátí se NULL.
Zvažte následující 2 tabulky
A | |
Num | Náměstí |
2 | 4 |
3 | 9 |
4 | 16 |
B | |
Num | Krychle |
2 | 8 |
3 | 18 |
5 | 75 |
A B
A ⋈ B | ||
Num | Náměstí | Krychle |
2 | 4 | 8 |
3 | 9 | 18 |
4 | 16 | - |
Pravý vnější spoj (A B)
RIGHT JOIN vrátí všechny sloupce z tabulky vpravo, i když v tabulce vlevo nebyly nalezeny žádné odpovídající řádky. Pokud v tabulce vlevo nebyly nalezeny žádné shody, vrátí se NULL. PRAVÉ vnější spojení je opakem LEVÉHO PŘIPOJENÍ
V našem příkladu předpokládejme, že potřebujete získat jména členů a filmy, které si pronajali. Nyní máme nového člena, který si zatím žádný film nepůjčil.
A B
A ⋈ B | ||
Num | Krychle | Náměstí |
2 | 8 | 4 |
3 | 18 | 9 |
5 | 75 | - |
Úplné vnější spojení (A B)
Ve FULL OUTER JOIN jsou do výsledku zahrnuty všechny n-tice z obou relací, bez ohledu na podmínku shody.
Příklad:
A B
A ⋈ B | ||
Num | Náměstí | Krychle |
2 | 4 | 8 |
3 | 9 | 18 |
4 | 16 | - |
5 | - | 75 |
Souhrn:
- V DBMS existují hlavně dva typy spojení 1) Vnitřní spojení 2) Vnější spojení
- Vnitřní spojení je široce používaná operace spojení a lze jej považovat za výchozí typ spojení.
- Inner Join se dále dělí na tři podtypy: 1) Theta join 2) Natural join 3) EQUI join
- Theta Join vám umožňuje sloučit dvě tabulky na základě podmínky představované theta
- Když theta spojení používá pouze podmínku ekvivalence, stane se ekvím spojením.
- Přirozené spojení nevyužívá žádný z operátorů porovnání.
- Vnější spojení nevyžaduje, aby každý záznam ve dvou tabulkách spojení měl odpovídající záznam.
- Outer Join se dále dělí na tři podtypy: 1) Left Outer Join 2) Right Outer Join 3) Full Outer Join
- Funkce LEFT Outer Join vrátí všechny řádky z tabulky vlevo, i když v tabulce vpravo nebyly nalezeny žádné odpovídající řádky.
- Funkce RIGHT Outer join vrátí všechny sloupce z tabulky vpravo, i když v tabulce vlevo nebyly nalezeny žádné odpovídající řádky.
- V úplném vnějším spojení jsou do výsledku zahrnuty všechny n-tice z obou relací, bez ohledu na podmínku shody.