Bevezetés az Oracle csatlakozásaiba

Az Oracle csatlakozásaival több táblából származó adatok érhetők el. Az Oracle-be való csatlakozást olyan helyen használják, ahol több mint két táblát kell összekapcsolni, hogy összegyűjtsék az Oracle SQL utasításban található hasznos információkat. Más szavakkal, a csatlakozási lekérdezés a sorok kettőnél több táblából vagy nézetből történő lekérésére szolgál a csatlakozási feltételek alapján. A csatlakozási feltétel meghatározható a FROM-záradékban vagy a hol-záradékban. Az egyesítési feltétel összehasonlítja a különféle táblák oszlopait, és lekérdezi azokat a sorokat, amelyek esetében a csatlakozási feltétel igaz.

Az Oracle csatlakozási típusai

Az Oracle-ben tíz különféle típusú csatlakozás létezik, az alábbiak szerint:

  • Belső illesztések (más néven Simple Joins)
  • Equi Joins
  • Külső csatlakozik
  • Bal oldali külső csatlakozások (más néven Bal oldali csatlakozások)
  • Jobb külső illesztések (más néven jobb illesztések)
  • Teljes külső csatlakozás (más néven teljes csatlakozás)
  • Önálló csatlakozás
  • Cross Joins (más néven derékszögű termékek)
  • Anti Joins
  • Semi Joins

Ezután megértjük az egyes csatlakozásokat a szintaxissal és a példákkal.

1. Belső csatlakozás (más néven Simple Join)

Belső csatlakozások csatlakoznak a több táblázathoz, és visszatérnek azokhoz a sorokhoz, amelyek esetében a csatlakozás feltétele igaz. A belső csatlakozás a leggyakoribb csatlakozás a csatlakozás típusai között.

Szintaxis:

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

Az alábbi ábra a belső illesztés vizuális ábrázolását ábrázolja, ahogy az ábrán az árnyékolt terület visszatér az Oracle INNER JOIN eredményeként:

Az Oracle INNER JOIN eredményeként visszaadja a t1 és t2 metszéspont rekordjait.

Példa:

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

Ez az Oracle INNER JOIN fenti példa minden olyan sort visszaad a munkavállalói és az osztálytáblákból, ahol az alkalmazott _id értéke megegyezik az alkalmazott és az osztály tábláiban.

2. Equi Joins

Az Oracle Equi Joins lekérdezi a több táblázat megfelelő oszlopértékét. A csatlakozási feltétel vagy az összehasonlító operátor jelen van a kiválasztási utasítás WHERE szakaszában.

Szintaxis:

SELECT column (, column ) FROM t1, t2
where t1.column = t2.column;

Az alábbi ábra az egyenleg vizuális ábrázolását mutatja, ahogy az ábrán az árnyékolt terület visszatér az Oracle Equi Join eredményeként.

Az Oracle Equijoin eredményeként visszatér a t1 és t2 metszéspontjai.

Példa:

SELECT employee.employee _id, employee.employee_name, department. department_name
FROM employee, department
where employee.employee _id = department.employee _id;

Ez az Oracle Equijoin fenti példa minden olyan sort visszaad a munkavállalói és az osztálytáblákból, ahol a munkavállaló _id értéke mind az alkalmazott, mind az osztály táblázata megegyezik.

3. Külső csatlakozások

Egy másik típusú illesztés egy külső illesztés, amely egy belső illesztés eredményét adja vissza, plusz az összes tábla egy sora, amelynél az illesztési feltétel nem teljesül.

Szintaxis:

SELECT column (, column ) FROM t1
LEFT | RIGHT | FULL (OUTER) JOIN t2
ON t1.column = t2.column;

Háromféle külső csatlakozás létezik, az alábbiak szerint:

  • Bal oldali külső csatlakozások (más néven Bal oldali csatlakozások)
  • Jobb külső illesztések (más néven jobb illesztések)
  • Teljes külső csatlakozás (más néven teljes csatlakozás)

4. Bal oldali csatlakozás

A Left Outer Join visszatérések tartalmaznak minden sort a LEFT táblából (az ON feltételben megadottak szerint), a másik táblából pedig csak azokat a sorokat, ahol a csatlakozás feltétele igaz.

Szintaxis:

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

A bal oldali csatlakozás kulcsszó, használja a bal oldali csatlakozást más adatbázisokban.

Az alábbi ábra a LEFT OUTER JOIN vizuális ábrázolását ábrázolja, mivel az ábrán az Oracle LEFT OUTER JOIN eredményeként az árnyékolt terület visszatér:

Az Oracle LEFT OUTER JOIN visszaadja a t1 összes rekordját és ennek eredményeként a t1 és t2 metszéspontjait.

Példa:

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

Ez az Oracle LEFT OUTER JOIN fenti példa az összes sort visszaadja a munkavállalói táblázatokból, és az osztálytáblázatból csak azokat a sorokat, amelyeknél a csatlakoztatott állapot igaz. Azok az osztálytáblák, ahol az alkalmazott értéke azonos mind az alkalmazotti, mind az osztálytáblákban, megegyeznek.

Ha az alkalmazott _id értéke a munkavállalói táblázatban megegyezik az osztálytáblával, akkor az osztálytáblázat mezői nulla lesznek az eredményben.

5. Jobb külső csatlakozás

A JOBB KIMENETI visszatérés a JOBBTáblázat összes sorát tartalmazza (az ON feltételben megadottak szerint), a többi táblából pedig csak azokat a sorokat, ahol a csatlakoztatott feltétel igaz.

Szintaxis:

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

A RIGHT OUTER JOIN kulcsszó, JOGI CSATLAKOZÁSként használjon más adatbázisokban.

Az alábbi ábra a JOBB KÜLSŐ CSATLAKOZÁS vizuális ábrázolását ábrázolja, mivel az ábrán az árnyékolt terület visszatérése az Oracle RIGHT OUTER JOIN eredményeként.

Az Oracle RIGHT OUTER JOIN visszaadja a t2 összes rekordját, és ennek eredményeként a t1 és t2 metszéspontjait.

Példa:

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

Ez az Oracle LEFT OUTER JOIN fenti példa az összes sort visszaadja az osztálytáblázatból, és a munkavállalói táblából csak azokat a sorokat, amelyeknél a csatlakoztatott állapot igaz. Az alkalmazottak táblázata, ahol a munkavállaló azonosító értéke mind a munkavállalói, mind az osztály táblázatokban megegyezik.

Ha az alkalmazott _id értéke a munkavállalói táblázatban megegyezik az osztálytáblával, akkor a munkavállalói táblázat mezői nulla lesznek az eredményben.

6. Teljes külső csatlakozás

A Teljes külső csatlakozás visszatérések tartalmaznak minden sort a BAL táblázatból és a JOBB táblából, nullával azokban a mezőkben, ahol a csatlakozás feltétele nem igaz.

Szintaxis:

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

A FULL OUTER JOIN kulcsszó, FULL JOIN néven használható más adatbázisokban.

Az alábbi ábra a FULL OUTER JOIN vizuális ábrázolását ábrázolja, mivel az ábrán az Oracle FULL OUTER JOIN eredményeként az árnyékolt terület visszatér.

Az Oracle FULL OUTER JOIN ennek eredményeként visszaadja az összes rekordot a t1 és a t2 táblákból.

Példa:

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

Ez az Oracle FULL OUTER JOIN fenti példa az összes sort visszaadja a munkavállalói táblázatból és az osztálytáblázatból null értékekkel, ha a csatlakozott feltétel nem igaz.

7. Az Oracle öncsatlakozása

Önállóan csatlakozzon a táblázathoz kétszer a FROM záradékban, a tábla álnevek segítségével. Más szavakkal: az én csatlakozik, csatlakozzon egy asztalhoz. Az Oracle Self Join egyesíti és visszaadja a táblázat sorait, ahol a csatlakozás feltétele igaz.

Példa:

SELECT emp1.employee_name || 'works for' || emp2.employee_name
FROM employees emp1, employees emp2
WHERE emp1.manager_id = emp2.employee_id
ORDER BY emp1.employee_name;

Ez az Oracle öncsatlakozási példa felett az összes sor visszakerül a munkavállalói táblából, ahol a csatlakozott feltétel igaz.

8. Oracle Cross Joins (más néven kartéziai termékek)

A keresztirányú illesztés akkor érvényes, ha a két asztalnak nincs csatlakozási feltétele. A kereszteződés a két asztal derékszögű termékét adja vissza, derékszögű termék, ahol az egyik asztal minden sora egyesül a másik asztal minden sorával. Tegyük fel, hogy az 1. táblázat 100 sort tartalmaz, a 2. táblázat pedig 10 sort tartalmaz, akkor az összekapcsolási eredmény 1000 sort tartalmaz.

Példa;

SELECT employee.employee _id, employee.employee_name, department.department_name
FROM employee
CROSS JOIN department

Ez a fenti, a JOIN-ral ábrázolt példa visszaadja az alkalmazottak táblázatainak összes sorát az osztálytáblázat összes sorával.

9. Oracle Anti Joins

Az antijoin visszatérések olyan sorokat tartalmaznak a LEFT táblából (az ON feltételben megadottak szerint), ahol a csatlakozott feltétel igaz.

Példa:

SELECT employee.employee _id, employee.employee_name, department.department_name
FROM employee
WHERE department_id NOT IN (SELECT department_id from department
WHERE department_name = 'sales';

Ez az Oracle ANTI JOIN feletti példa sorokat ad vissza a munkavállalói táblából, és ha a csatlakozott feltétel igaz.

10. Oracle Semi Joins

A félig jelű visszatérések tartalmaznak egyedi sorokat a LEFT táblából (az ON feltételben megadottak szerint), ahol a megfelelés az EGYENLŐ alkérdésnek igaz.

Példa:

SELECT employee.employee _id, employee.employee_name
FROM employee
WHERE EXISTS (SELECT department_id FROM department
WHERE department_name = 'sales');

Ez az Oracle SEMI JOIN fenti példa sorokat ad vissza a munkavállalói táblából, ha az EXISTS igaz lesz.

Következtetés

Számos táblából származó adatokhoz való hozzáférés. Hét különféle típusú csatlakozás létezik az Oracle-ben.

Ajánlott cikkek

Ez egy útmutató a Joins az Oracle-hez. Itt tárgyalunk egy bevezetést a Joins az Oracle-ben és annak 10 különféle típusáról az Oracle Joins-ben. Megnézheti más kapcsolódó cikkeket is, ha többet szeretne megtudni -

  1. Csatlakozás típusai az SQL-ben
  2. Tableau csatlakozik
  3. Oracle Warehouse Builder
  4. Oracle String funkciók
  5. Mi az a lekérdezés és az Oracle lekérdezések típusai?
  6. A MySQL 6 legfontosabb csatlakozási típusa példákkal
  7. Útmutató a 9 legfontosabb Oracle záradékhoz (példa) l
  8. Választás a MySQL | Példák a Választáshoz a MySQL-ben

Kategória: