Vnitřní připojení k Oracle - Naučte se top 6 příkladů dotazů vnitřního spojení v Oracle

Obsah:

Anonim

Úvod do společnosti Inner Join in Oracle

Klauzule join se používají v databázi Oracle pro přístup k datům z více tabulek k získání informací. V databázi Oracle jsou různé typy spojení.

Vnitřní spojení je jedním z typů spojení v databázi Oracle. Vnitřní spojení, připojte se k více tabulkám a vraťte ty řádky, pro které je podmínka spojení pravdivá. Vnitřní spojení je také známé jako jednoduché spojení. Vnitřní spojení je nejběžnějším spojením mezi typy spojení.

Syntaxe vnitřního spojení

SELECT column (, column ) FROM t1
INNER JOIN t2
ON t1.column = t2.column;

Vizuální reprezentace vnitřního spojení je znázorněna na níže uvedeném diagramu, zatímco ve schématu níže se stínovaná oblast vrací jako výsledek Oracle Inner Join

Výsledkem je Oracle Inner Join, který vrací protínající se záznamy t1 a t2.

Příklady dotazů pro vnitřní spojení

Podívejme se podrobně na vnitřní spojení pomocí několika příkladů dotazu:

Příklad č. 1

Příklad dotazu pro Vnitřní připojení

SELECT employee.employee _id, employee.employee_name, department. department_name
FROM employee
INNER JOIN department
ON employee.employee _id = department.employee _id;

Tento výše uvedený příklad Oracle INNER JOIN vrátí všechny řádky z tabulky zaměstnanců a tabulky oddělení, kde je přiřazena hodnota _id zaměstnance v tabulce zaměstnanců i tabulce oddělení.

Uvažujeme zde o schématu hr, které je schématem vzorové databáze Oracle. Schéma hr obsahuje tabulky ZEMĚ, ZAMĚSTNANCI, ODDĚLENÍ, JOB_HISTORY, PRACOVNÍKY, MÍSTA, REGIONY, o které se zajímáme nebo požadujeme tabulky ZAMĚSTNANCŮ, ODDĚLENÍ a MÍSTA.

Popis těchto tabulek je -

Tabulka ZAMĚSTNANCI

ODDĚLENÍ tabulky

Tabulka LOKACE

Příklad č. 2

Příklad vnitřního spojení pro dvě tabulky

Zde bychom chtěli načíst data ze dvou tabulek ZAMĚSTNANCŮ a ODDĚLENÍ. V tomto dotazu píšeme, abychom načíst ID zaměstnance zaměstnance a jeho jméno z tabulky zaměstnanců a název oddělení z tabulky oddělení -

SELECT employees. employee_id, employees. first_name, departments.department_name
FROM employees, departments
WHERE employees. employee_id = departments. department_id;

Výstup

Názvům sloupců s tabulkou předchází klauzula Oracle SELECT. Pokud je sloupec společný pro obě tabulky, musí být pro přehlednost název sloupce předponován názvem tabulky. Tabulky, z nichž mají být data načtena, určují v klauzuli from from s čárkami oddělenými. V klauzuli WHERE určete podmínku spojení. Vztah mezi zaměstnanci a tabulkami oddělení je určen hodnotami ve společném sloupci Employ_id v obou tabulkách musí být stejné a tento vztah se označuje jako spojení Equi. Do tohoto vztahu jsou obvykle zapojeny primární a cizí klíče.

Příklad č. 3

Příklad vnitřního spojení dvou tabulek s Aliasy

Přepíšme výše uvedený příklad pomocí tabulkových aliasů jako -

SELECT e. employee_id, e. first_name,
d. department_name
FROM employees e, departments d
WHERE e. employee_id = d. department_id;

Výstup

Stejně jako ve výše uvedeném dotazu se aliasy tabulek vytvářejí v klauzuli z za názvem sloupce a namísto psaní celého názvu tabulky ve klauzuli select před každým sloupcem použijte tabulku Aliasy jako e a d ve výše uvedeném dotazu.

Příklad č. 4

Příklad vnitřního spojení dvou tabulek s přidáním dalších ustanovení

Příklad dalšího dotazu, kde přidáme další klauzule do našeho příkazu Oracle SELECT, kde klauzule pro přidávání agregací, omezení vrácených řádků, definování pořadí třídění atd. Zde je příklad dotazu, který vyhledá všechny zaměstnance, kteří pracují v oddělení finance, výroba a stavebnictví.

SELECT e. employee_id, e. first_name,
d. department_name
FROM employees e, departments d
WHERE e. employee_id = d. department_id
AND d. department_name in ( 'Finance', 'Manufacturing', 'Construction' );

Výstup

Příklad č. 5

Příklad vnitřního spojení dvou tabulek s seřazením podle klauzule

Následující příklad dotazu přepíšeme výše uvedený dotaz přidáním objednávky podle klauzule, proto zobrazíme data zaměstnance seřazená podle názvu oddělení.

SELECT e. employee_id, e. first_name,
d. department_name
FROM employees e, departments d
WHERE e. employee_id = d. department_id
AND d. department_name in ('Finance', 'Manufacturing', 'Construction')
ORDER BY d. department_name;

Výstup

Příklad č. 6

Příklad vnitřního spojení pro připojení více tabulek

Někdy potřebujeme získat informace, abychom mohli spojit více než dvě tabulky. Dále napíšeme příklad dotazu, abychom se spojili s více tabulkami. Vezměme si příklad, který chceme načíst jméno zaměstnance z tabulky zaměstnanců, název oddělení z tabulky oddělení a identifikační číslo země, kde tento zaměstnanec pracuje v tabulce umístění.

SELECT e. first_name, e. salary, d. department_name, l. city, l. country_id
FROM employees e, departments d, locations l
WHERE e. employee_id = d. department_id
AND
d. location_id = l. location_id;

Výstup

Pro spojení čtyř nebo více tabulek platí stejný koncept přidáním názvu tabulky v klauzuli FROM věštce a podmínku spojení použijeme v klauzuli WHERE věštce.

Závěr

Vnitřní spojení je jedním z typů spojení v databázi Oracle. Vnitřní spojení používané ke spojení více tabulek a vrácení těch řádků, pro které je podmínka spojení pravdivá. Obecně primární klíč a cizí klíč jsou zapojeny do vnitřního spojení, aby vytvořily vztah mezi tabulkami.

Doporučené články

Toto je průvodce Inner Join in Oracle. Zde diskutujeme úvod k Inner join spolu s několika příklady podrobně. Další informace naleznete také v dalších navrhovaných článcích -

  1. Připojuje se k MySQL
  2. Dotazy Oracle
  3. Oracle Data Warehousing
  4. Co je to databáze Oracle