Úvod do spoločnosti Oracle
Klauzuly o spojení sa používajú v databáze Oracle o prístupe k údajom z viacerých tabuliek na získanie informácií. V databáze Oracle sú rôzne typy spojení.
Vnútorné pripojenie je jedným z typov spojenia v databáze Oracle. Vnútorné spojenie, spojenie viacerých tabuliek a vrátenie tých riadkov, pre ktoré je alebo sú podmienky spojenia pravdivé. Vnútorný spoj sa označuje aj ako jednoduchý spoj. Vnútorné spojenie je najbežnejším spojením medzi typmi spojenia.
Syntax vnútorného spojenia
SELECT column (, column ) FROM t1
INNER JOIN t2
ON t1.column = t2.column;
Vizuálna reprezentácia vnútorného spojenia je znázornená v nižšie uvedenom diagrame, ako v nižšie uvedenom diagrame sa tieňovaná oblasť vracia ako výsledok Oracle Inner Join.
Výsledkom je, že Oracle Inner Join vráti priesečníkové záznamy t1 a t2.
Príklady dopytov pre vnútorné pripojenie
Poďme sa podrobne zoznámiť s vnútorným spojením pomocou niekoľkých príkladov dotazu:
Príklad č. 1
Príklad dopytu pre vnútorné pripojenie
SELECT employee.employee _id, employee.employee_name, department. department_name
FROM employee
INNER JOIN department
ON employee.employee _id = department.employee _id;
Tento príklad nad Oracle INNER JOIN vráti všetky riadky z tabuľky zamestnancov a tabuľky oddelení, kde sa zhoduje hodnota _id zamestnanca v tabuľke zamestnancov aj tabuľke oddelení.
Uvažujeme tu o schéme hodín, ktoré sú vzorovými schémami databázy Oracle. Schéma hr obsahuje tabuľky KRAJINY, ZAMESTNANCI, ODDELENIA, JOB_HISTORY, PRACOVNÉ MIESTA, MIESTE, REGIÓNY, o ktoré sa zaujímame alebo požadujeme tabuľky ZAMESTNANCOV, ODDELENIA A MIESTO.
Opis týchto tabuliek je -
Tabuľka ZAMESTNANCI
ODDELENIA tabuľky
Tabuľka LOKÁCIE
Príklad č. 2
Príklad vnútorného spojenia pre dve tabuľky
Tu by sme chceli načítať údaje z dvoch tabuliek ZAMESTNANCI A ODDELENIA. V tomto dotaze píšeme, aby sme získali identifikačné číslo zamestnanca a meno zamestnanca z tabuľky zamestnanca a názov oddelenia z tabuľky pracoviska -
SELECT employees. employee_id, employees. first_name, departments.department_name
FROM employees, departments
WHERE employees. employee_id = departments. department_id;
Výkon
Názvom stĺpcov s tabuľkou predchádza klauzula Oracle SELECT. Ak je stĺpec spoločný pre obe tabuľky, musí byť názov stĺpca kvôli prehľadnosti uvedený pred názvom tabuľky. Tabuľky, z ktorých sa majú údaje získať, sa v klauzuli z určia s čiarkou oddelenými. V klauzule WHERE uveďte podmienku spojenia. Vzťah medzi zamestnancami a tabuľkami oddelení je určený hodnotami v spoločnom stĺpci Employ_id v oboch tabuľkách musí byť rovnaký a tento vzťah sa označuje ako spojenie Equi Join. Do tohto vzťahu sa zvyčajne zapájajú primárne a cudzie kľúče.
Príklad č. 3
Príklad vnútorného spojenia dvoch tabuliek s Aliasy
Prepíšme vyššie uvedený príklad použitím aliasu tabuľky ako -
SELECT e. employee_id, e. first_name,
d. department_name
FROM employees e, departments d
WHERE e. employee_id = d. department_id;
Výkon
Podobne ako vo vyššie uvedenom dotaze sa aliasy tabuľky vytvárajú v klauzuli z za názvom stĺpca a namiesto písania celého názvu tabuľky do klauzuly výberu pred každým stĺpcom použite tabuľku Aliasy ako e a d vo vyššie uvedenom dotaze.
Príklad č. 4
Príklad vnútorného spojenia pre dve tabuľky s pridaním ďalších ustanovení
Ďalší príklad dotazu, do ktorého pridávame ďalšie klauzuly do nášho príkazu Oracle SELECT, do ktorého sa vkladá klauzula na pridávanie agregácií, obmedzovanie vrátených riadkov, definovanie poradia zoradenia atď. Tu je príklad dotazu, ktorý vyhľadáva všetkých zamestnancov, ktorí pracujú v oddeleniach Financie, Výroba a Stavebníctvo.
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ýkon
Príklad č. 5
Príklad vnútorného spojenia dvoch tabuliek s poradím podľa doložky
Nasledujúci príklad dotazu prepíšeme vyššie uvedený dotaz pridaním doložky podľa poradia, a preto zobrazíme údaje zamestnanca zoradené podľa názvu oddelenia.
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ýkon
Príklad č. 6
Príklad vnútorného spojenia pre pripojenie viacerých tabuliek
Niekedy potrebujeme získať informácie, aby sme sa mohli spojiť s viac ako dvoma tabuľkami. Ďalej píšeme príklad dotazu, aby sme sa spojili s viacerými tabuľkami. Zoberme si príklad, ktorý chceme získať zo zamestnaneckej tabuľky meno zamestnanca, názov oddelenia z tabuľky oddelení a identifikačné číslo krajiny miesta, kde tento zamestnanec pracuje v tabuľke umiestnení.
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ýkon
Pre spojenie štyroch alebo viacerých tabuliek platí rovnaká koncepcia pridaním názvu tabuľky do klauzuly FROM orákra a podmienky spojenia sa pripojí do klauzuly WHERE orákulu.
záver
Vnútorné pripojenie je jedným z typov spojenia v databáze Oracle. Vnútorné spojenie sa používa na spojenie viacerých tabuliek a vrátenie tých riadkov, pre ktoré je alebo sú podmienky spojenia pravdivé. Primárny kľúč a cudzí kľúč sa zvyčajne podieľajú na vnútornom spojení, aby vytvorili vzťah medzi tabuľkami.
Odporúčané články
Toto je príručka spoločnosti Inner Join in Oracle. Tu diskutujeme o úvode k Inner join spolu s niekoľkými príkladmi podrobne. Viac informácií nájdete aj v ďalších navrhovaných článkoch -
- Pripojí sa k MySQL
- Dotazy Oracle
- Oracle Data Warehousing
- Čo je Oracle Database