MySQL SE PŘIPOJUJE se používají k načítání dat z více tabulek. REGISTRACE provede se vždy, když jsou dvě nebo více tabulek spojeny v příkazu SQL.

Existují různé typy připojení MySQL:

Podívejme se na syntaxi MySQL JOIN a také si prostudujeme příklady MySQL JOIN.

INNER JOIN (jednoduché spojení)

S největší pravděpodobností jste již napsali dotazy, které používají MySQL INNER JOIN. Toto je nejběžnější typ připojení. MySQL INNER JOINS vrací všechny řádky z více tabulek, kde jsou splněny podmínky spojení.

syntax

Syntaxe INNER JOIN v MySQL:

vnitřní spojení

Na tomto obrázku vrací MySQL INNER JOIN stínovanou oblast:

MySQL INNER JOIN vrátí záznamy, kde se tabulka1 a tabulka2 protínají.

příklad

Níže je uveden příklad MySQL INNER JOIN:

Tento příklad MySQL INNER JOIN vrací všechny řádky z tabulek dodavatelů a objednávek, kde jsou v obou tabulkách odpovídající hodnoty pole id_dodavatele.

Podívejme se na některá data, abychom pochopili, jak INNER JOIN funguje:

Máme tabulku dodavatelů se dvěma poli ( id_dodavatele a jméno_dodavatele ), která obsahuje následující údaje:

dodavatel_id Jméno dodavatele
10000 IBM
10001 Hewlett Packard
10002 Microsoft
10003 NVIDIA

Máme další tabulku objednávek se třemi poli ( order_id , dodavatel_id a order_date ). Obsahuje následující údaje:

číslo objednávky dodavatel_id datum objednávky
500125 10000 05.05.2015
500126 10001 08.02.2016
500127 10004 06.01.2017

Pokud provedeme příkaz MySQL SELECT (který obsahuje INNER JOIN) níže:

Naše sada výsledků bude vypadat takto:

dodavatel_id název datum objednávky
10000 IBM 05.05.2015
10001 Hewlett Packard 08.02.2016

Řádky pro Microsoft a NVIDIA z tabulky dodavatelů budou vynechány, protože hodnoty id_dodavatele ​​10002 a 10003 v obou tabulkách neexistují. Řádek order_id 500127 z tabulky objednávek bude vynechán, protože dodavatel_id 10004 v tabulce dodavatelů neexistuje.

Stará syntaxe

Jako poslední poznámku stojí za zmínku, že výše uvedený příklad MySQL INNER JOIN lze přepsat pomocí staré implicitní syntaxe následovně (doporučuje se však použít syntaxi INNER JOIN):

SELECT dodavatelé.id_dodavatele, dodavatelé.jméno_dodavatele, objednávky.datum_objednávky
OD dodavatelů, objednávky
WHERE Suppliers.supplier_id = orders.supplier_id;

LEVÁ VNĚJŠÍ SPOJENÍ

Další typ spojení se nazývá MySQL LEFT OUTER JOIN. Tento typ spojení vrátí všechny řádky z tabulek s levým spojením zadaným v klauzuli ON a pouze ty řádky z jiné tabulky, kde jsou spojovaná pole stejná.

ČTĚTE VÍCE
Jak krmit sansevieria doma?

syntax

Syntaxe pro LEFT OUTER JOIN v MySQL:

V některých databázích je LEFT OUTER JOIN nahrazeno LEFT JOIN.

Na tomto obrázku vrací MySQL LEFT OUTER JOIN stínovanou oblast:

levý vnější spoj

MySQL LEFT OUTER JOIN vrátí všechny záznamy z tabulky1 a pouze ty záznamy z tabulky2, které se protínají s tabulkou1.

příklad

Tento příklad LEFT OUTER JOIN vrátí všechny řádky z tabulky dodavatelů a pouze ty řádky z tabulky objednávek, kde jsou spojovaná pole stejná.

Pokud hodnota id_dodavatele v tabulce dodavatelů v tabulce objednávek neexistuje, všechna pole v tabulce objednávek se v sadě výsledků zobrazí jako NULL.

Podívejme se na některá data, abychom pochopili, jak funguje LEFT OUTER JOIN:

Máme tabulku dodavatelů se dvěma poli ( id_dodavatele a jméno_dodavatele ), která obsahuje následující údaje:

dodavatel_id Jméno dodavatele
10000 IBM
10001 Hewlett Packard
10002 Microsoft
10003 NVIDIA

Máme další tabulku objednávek se třemi poli ( order_id , dodavatel_id a order_date ). Obsahuje následující údaje:

číslo objednávky dodavatel_id datum objednávky
500125 10000 05.05.2015
500126 10001 08.02.2016

Pokud provedeme příkaz MySQL SELECT (který obsahuje LEFT OUTER JOIN) níže:

Oracle SE PŘIPOJUJE se používají k načítání dat z více tabulek. REGISTRACE provede se vždy, když jsou dvě nebo více tabulek spojeny v příkazu SQL.

Existují 4 různé typy spojení Oracle:

Podívejme se na syntaxi Oracle JOIN a také si prostudujeme příklady Oracle JOIN.

INNER JOIN (jednoduché spojení)

S největší pravděpodobností jste již napsali dotazy, které používají Oracle INNER JOIN. Toto je nejběžnější typ připojení. Oracle INNER JOINS vrátí všechny řádky z více tabulek, kde jsou splněny podmínky spojení.

syntax

Syntaxe INNER JOIN v Oracle/PLSQL:

Na tomto obrázku vrací Oracle INNER JOIN stínovanou oblast:

vnitřní spojení

Oracle INNER JOIN vrátí záznamy, kde se tabulka1 a tabulka2 protínají.

příklad

Níže je uveden příklad Oracle INNER JOIN:

Tento příklad Oracle INNER JOIN vrací všechny řádky z tabulek dodavatelů a objednávek, kde jsou v obou tabulkách odpovídající hodnoty pole id_dodavatele.

Podívejme se na některá data, abychom pochopili, jak INNER JOIN funguje:

Máme tabulku dodavatelů se dvěma poli ( id_dodavatele a jméno_dodavatele ), která obsahuje následující údaje:

ČTĚTE VÍCE
Jak se nazývají rolety, které blokují světlo?
dodavatel_id Jméno dodavatele
10000 IBM
10001 Hewlett Packard
10002 Microsoft
10003 NVIDIA

Máme další tabulku objednávek se třemi poli ( order_id , dodavatel_id a order_date ). Obsahuje následující údaje:

číslo objednávky dodavatel_id datum objednávky
500125 10000 05.05.2015
500126 10001 08.02.2016
500127 10004 06.01.2017

Pokud provedeme příkaz Oracle SELECT (který obsahuje INNER JOIN) níže:

Naše sada výsledků bude vypadat takto:

dodavatel_id název datum objednávky
10000 IBM 05.05.2015
10001 Hewlett Packard 08.02.2016

Řádky pro Microsoft a NVIDIA z tabulky dodavatelů budou vynechány, protože hodnoty id_dodavatele ​​10002 a 10003 v obou tabulkách neexistují. Řádek order_id 500127 z tabulky objednávek bude vynechán, protože dodavatel_id 10004 v tabulce dodavatelů neexistuje.

Stará syntaxe

Jako poslední poznámku stojí za zmínku, že výše uvedený příklad Oracle INNER JOIN lze přepsat pomocí staré implicitní syntaxe následovně (doporučuje se však použít syntaxi INNER JOIN):

SELECT dodavatelé.id_dodavatele,
dodavatelé.jméno_dodavatele,
orders.order_date
OD dodavatelů, objednávky
WHERE Suppliers.supplier_id = orders.supplier_id;

LEVÁ VNĚJŠÍ SPOJENÍ

Další typ spojení se nazývá Oracle LEFT OUTER JOIN. Tento typ spojení vrátí všechny řádky z tabulek s levým spojením zadaným v klauzuli ON a pouze ty řádky z jiné tabulky, kde jsou spojovaná pole stejná.

syntax

Syntaxe pro Oracle LEFT OUTER JOIN:

V některých databázích je LEFT OUTER JOIN nahrazeno LEFT JOIN.

Na tomto obrázku vrací Oracle LEFT OUTER JOIN stínovanou oblast:

levý vnější spoj

Oracle LEFT OUTER JOIN vrátí všechny záznamy z tabulky1 a pouze ty záznamy z tabulky2, které se protínají s tabulkou1.

příklad

Tento příklad LEFT OUTER JOIN vrátí všechny řádky z tabulky dodavatelů a pouze ty řádky z tabulky objednávek, kde jsou spojovaná pole stejná.

Pokud hodnota id_dodavatele v tabulce dodavatelů v tabulce objednávek neexistuje, všechna pole v tabulce objednávek se v sadě výsledků zobrazí jako NULL.

Podívejme se na některá data, abychom pochopili, jak funguje LEFT OUTER JOIN:

Máme tabulku dodavatelů se dvěma poli ( id_dodavatele a jméno_dodavatele ), která obsahuje následující údaje:

dodavatel_id Jméno dodavatele
10000 IBM
10001 Hewlett Packard
10002 Microsoft
10003 NVIDIA

Máme další tabulku objednávek se třemi poli ( order_id , dodavatel_id a order_date ). Obsahuje následující údaje:

ČTĚTE VÍCE
Co je lepší do kuchyně: denní světlo nebo zářivě bílá?
číslo objednávky dodavatel_id datum objednávky
500125 10000 05.05.2015
500126 10001 08.02.2016

Pokud provedeme příkaz Oracle SELECT (který obsahuje LEFT OUTER JOIN) níže:

Výsledná sada bude vypadat takto:

dodavatel_id název datum objednávky
10000 IBM 05.05.2015
10001 Hewlett Packard 08.02.2016
10002 Microsoft null
10003 NVIDIA null

Řádky pro Microsoft a NVIDIA budou zahrnuty, protože bylo použito LEFT OUTER JOIN. Všimněte si však, že pole order_date pro tyto záznamy má hodnotu NULL.

PRAVÝ VNĚJŠÍ SPOJ

Další typ spojení se nazývá Oracle RIGHT OUTER JOIN. Tento typ spojení vrátí všechny řádky z tabulek s pravostranným spojením zadaným v klauzuli ON a pouze ty řádky z jiné tabulky, kde jsou spojovaná pole stejná.

syntax

Syntaxe Oracle RIGHT OUTER JOIN:

V některých databázích je RIGHT OUTER JOIN nahrazeno RIGHT JOIN.

Na tomto obrázku vrací Oracle RIGHT OUTER JOIN stínovanou oblast:

pravý vnější spoj

Oracle RIGHT OUTER JOIN vrátí všechny záznamy z tabulky2 a pouze ty záznamy z tabulky1, které se protínají s tabulkou2.

příklad

Níže je uveden příklad Oracle RIGHT OUTER JOIN:

Tento příklad RIGHT OUTER JOIN vrátí všechny řádky z tabulky objednávek a pouze ty řádky z tabulky dodavatelů, kde jsou spojovaná pole stejná.

Pokud hodnota id_dodavatele v tabulce objednávek v tabulce dodavatelů neexistuje, všechna pole v tabulce dodavatelů se ve výsledné sadě zobrazí jako NULL.

Podívejme se na některá data, abychom pochopili, jak funguje RIGHT OUTER JOIN:

Máme tabulku dodavatelů se dvěma poli ( id_dodavatele a jméno_dodavatele ), která obsahuje následující údaje:

dodavatel_id Jméno dodavatele
10000 jablko
10001 Google

Máme druhou tabulku objednávek se třemi poli ( order_id , dodavatel_id a order_date ). Obsahuje následující údaje:

číslo objednávky dodavatel_id datum objednávky
500125 10000 12.05.2016
500126 10001 14.05.2016
500127 10002 18.05.2016

Pokud provedeme příkaz Oracle SELECT (který obsahuje RIGHT OUTER JOIN) níže:

Výsledná sada bude vypadat takto:

číslo objednávky datum objednávky Jméno dodavatele
500125 12.05.2016 jablko
500126 14.05.2016 Google
500127 18.05.2016 null

Řádek pro order_id 500127 bude zahrnut, protože bylo použito RIGHT OUTER JOINS. Všimněte si však, že pole název_dodavatele pro tento záznam má hodnotu NULL.

ČTĚTE VÍCE
Jak resetovat kazetu na tiskárně?

ÚPLNÉ VNĚJŠÍ PŘIPOJENÍ

Další typ spojení se nazývá Oracle FULL OUTER JOIN. Tento typ spojení vrátí všechny řádky z levé a pravé tabulky s hodnotami NULL, kde podmínka spojení není splněna.

syntax

Syntaxe pro Oracle FULL OUTER JOIN:

V některých databázích jsou FULL OUTER JOINy ​​nahrazeny FULL JOINy.

Na tomto obrázku vrátí FULL OUTER JOIN stínovanou oblast:

úplné vnější spojení

Oracle FULL OUTER JOIN vrátí všechny záznamy z tabulek tabulka1 a tabulka2.

příklad

Níže je uveden příklad Oracle FULL OUTER JOIN:

Tento příklad FULL OUTER JOIN vrátí všechny řádky z tabulky dodavatelů a všechny řádky z tabulky objednávek, a kdykoli není splněna podmínka spojení, pole ve výsledné sadě budou mít hodnotu NULL.

Pokud hodnota pole id_dodavatele v tabulce dodavatelů v tabulce objednávek neexistuje, všechna pole v tabulce objednávek se v sadě výsledků zobrazí jako NULL. Pokud hodnota id_dodavatele v tabulce objednávek v tabulce dodavatelů neexistuje, všechna pole v tabulce dodavatelů se ve výsledné sadě zobrazí jako NULL.

Podívejme se na některá data, abychom pochopili, jak funguje FULL OUTER JOIN:

Máme tabulku dodavatelů se dvěma poli ( id_dodavatele a jméno_dodavatele ). Obsahuje následující údaje:

dodavatel_id Jméno dodavatele
10000 IBM
10001 Hewlett Packard
10002 Microsoft
10003 NVIDIA

Máme druhou tabulku objednávek se třemi poli ( order_id , dodavatel_id a order_date ), která obsahuje následující údaje:

číslo objednávky dodavatel_id datum objednávky
500125 10000 12.05.2016
500126 10001 14.05.2016
500127 10004 18.05.2016

Pokud provedeme příkaz Oracle SELECT (který obsahuje FULL OUTER JOIN) níže: