Wprowadzenie do połączeń w Oracle

Połączenia w Oracle służą do uzyskiwania dostępu do danych z wielu tabel. Łączenie w wyroczni jest używane w miejscu, w którym należy połączyć więcej niż dwie tabele, aby zebrać przydatne informacje w instrukcji Oracle SQL. Innymi słowy, zapytanie o łączenie służy do pobierania wierszy z więcej niż dwóch tabel lub widoków na podstawie warunków łączenia. Warunek łączenia można określić w klauzuli FROM lub klauzuli where. Warunek łączenia porównuje kolumny różnych tabel i pobiera te wiersze, dla których warunek łączenia jest prawdziwy.

Rodzaje połączeń w Oracle

W Oracle istnieje dziesięć różnych rodzajów połączeń, jak podano poniżej:

  • Połączenia wewnętrzne (znane również jako połączenia proste)
  • Equi dołącza
  • Połączenia zewnętrzne
  • Left Outer Joins (nazywane również jako Left Joins)
  • Right Outer Joins (nazywane również Right Joins)
  • Full Outer Joins (nazywane również Full Joins)
  • Self Joins
  • Cross Joins (zwany także jako produkty kartezjańskie)
  • Anti Joins
  • Semi łączy

Następnie szczegółowo rozumiemy każde połączenie ze składnią i przykładami.

1. DOŁĄCZ DO WEWNĘTRZNEGO (znany również jako Simple Join)

Złączenia wewnętrzne łączą wiele tabel i zwracają wiersze, dla których warunek łączenia jest spełniony. Sprzężenie wewnętrzne jest najczęstszym połączeniem spośród rodzajów złączeń.

Składnia:

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

Poniższy schemat przedstawia wizualną reprezentację połączenia wewnętrznego, ponieważ na schemacie zacieniony obszar powraca w wyniku dołączenia Oracle INNER JOIN:

W wyniku tego funkcja INNER JOIN Oracle zwraca rekordy przecięcia t1 i t2.

Przykład:

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

Powyższy przykład Oracle INNER JOIN zwróci wszystkie wiersze z tabel pracownika i działu, w których pasują wartości _id pracownika zarówno w tabeli pracownika, jak i działu.

2. Dołącza Equi

Oracle Equi Joins pobiera pasujące wartości kolumn wielu tabel. Warunek łączenia lub operator porównania występujący w klauzuli WHERE instrukcji select.

Składnia:

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

Poniższy schemat przedstawia wizualną reprezentację ekwiwalentu, ponieważ na schemacie zacieniony obszar powraca w wyniku połączenia Oracle Equi Join.

W wyniku tego Oracle Equijoin zwraca rekordy przecięcia t1 i t2.

Przykład:

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

Powyższy przykład Oracle Equijoin zwróci wszystkie wiersze z tabel pracownika i działu, w których wartość _id pracownika w tabelach pracownika i działu jest zgodna.

3. Połączenia zewnętrzne

Innym rodzajem złączeń jest łączenie zewnętrzne, które zwraca wynik sprzężenia wewnętrznego plus wszystkie wiersze z jednej tabeli, dla których warunek łączenia nie jest spełniony.

Składnia:

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

Istnieją trzy typy łączenia zewnętrznego, jak podano poniżej:

  • Left Outer Joins (nazywane również jako Left Joins)
  • Right Outer Joins (nazywane również Right Joins)
  • Full Outer Joins (nazywane również Full Joins)

4. Lewy zewnętrzny łącznik

Zwroty lewy zewnętrzny łączenie zawierają wszystkie wiersze z tabeli LEWEJ (zgodnie z warunkiem określonym w warunku WŁĄCZENIA), a z drugiej tabeli tylko te wiersze, w których warunek połączenia jest prawdziwy.

Składnia:

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

Słowo kluczowe LEFT OUTER JOIN, użyj LEFT JOIN w niektórych innych bazach danych.

Poniższy diagram przedstawia wizualną reprezentację LEWEGO POŁĄCZENIA ZEWNĘTRZNEGO, ponieważ na schemacie zacieniony obszar powraca w wyniku połączenia LEWEGO ZEWNĘTRZNEGO POŁĄCZENIA:

POŁĄCZENIE ZEWNĘTRZNE POŁĄCZENIA ZEWNĘTRZNEGO zwraca wszystkie rekordy z t1 i rekordy przecięcia t1 i t2.

Przykład:

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

Powyższy przykład Oracle LEFT OUTER JOIN zwróci wszystkie wiersze z tabeli pracownika i tabeli tabeli tylko te wiersze, w których spełniony jest warunek połączenia. Tabele działów, w których wartość _id pracownika zarówno w tabelach pracownika, jak i działów są zgodne.

Jeśli wartość _id pracownika w tabeli pracownika nie zgadza się w tabeli działu, wówczas pola tabeli działu będą puste.

5. Prawy zewnętrzny łącznik

Zwroty PRAWEGO POŁĄCZENIA ZEWNĘTRZNEGO zawierają wszystkie wiersze z tabeli PRAWEJ (zgodnie z warunkiem określonym w warunku WŁĄCZENIA), a z drugiej tabeli tylko te wiersze, w których spełniony jest warunek połączenia.

Składnia:

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

Słowo kluczowe RIGHT OUTER JOIN, użyj jako RIGHT JOIN w niektórych innych bazach danych.

Poniższy diagram przedstawia wizualną reprezentację PRAWEGO ZŁĄCZA ZEWNĘTRZNEGO, ponieważ na schemacie zacieniony obszar powraca w wyniku połączenia PRAWEGO ZEWNĘTRZNEGO ZŁĄCZA Oracle.

W wyniku połączenia PRAWA ZEWNĘTRZNA Oracle zwraca wszystkie rekordy z t2 i rekordy przecięcia t1 i t2.

Przykład:

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

Powyższy przykład Oracle LEFT OUTER JOIN zwróci wszystkie wiersze z tabeli działu i tabeli pracownika tylko te wiersze, w których spełniony jest warunek połączenia. Tabele pracowników, w których wartość _id pracownika zarówno w tabeli pracownika, jak i działu są zgodne.

Jeśli wartość _id pracownika w tabeli pracownika nie zgadza się z tabelą działu, wówczas pola tabeli pracownika będą puste.

6. Pełny łącznik zewnętrzny

Zwroty pełnego sprzężenia zewnętrznego zawierają wszystkie wiersze z tabeli LEWEJ i PRAWEJ tabeli o wartości null w polach, w których warunek łączenia nie jest spełniony.

Składnia:

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

Słowo kluczowe FULL OUTER JOIN, użyj jako FULL JOIN w niektórych innych bazach danych.

Poniższy diagram przedstawia wizualną reprezentację FULL OUTER JOIN, ponieważ na schemacie zacieniony obszar powraca w wyniku Oracle FULL OUTER JOIN.

W rezultacie Oracle FULL OUTER JOIN zwraca wszystkie rekordy z tabel t1 i t2.

Przykład:

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

Powyższy przykład Oracle FULL OUTER JOIN zwróci wszystkie wiersze z tabeli pracownika i tabeli działu z wartościami zerowymi, w których warunek połączenia nie jest prawdziwy.

7. Oracle Self Joins

W przypadku samodzielnego przyłączenia tabela używa dwukrotnie w klauzuli FROM za pomocą nazwy aliasów tabeli. Innymi słowy, jaźń dołącza, dołącza do samego stołu. Oracle Self Join łączy i zwraca wiersze tabeli, w których warunek łączenia jest spełniony.

Przykład:

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;

Ten powyższy przykład Oracle JOIN zwróci wszystkie wiersze z tabeli pracowników, w których warunek połączenia jest prawdziwy.

8. Oracle Cross Joins (zwane również jako produkty kartezjańskie)

Łączenie krzyżowe ma zastosowanie, gdy dwie tabele nie mają warunków łączenia. Łączenie krzyżowe zwraca iloczyn kartezjański dwóch tabel, iloczyn kartezjański, w którym każdy wiersz jednej tabeli łączy się z każdym wierszem drugiej tabeli. Załóżmy, że tabela 1 zawiera 100 wierszy, a tabela 2 zawiera 10 wierszy, a wynik łączenia zawiera 1000 wierszy.

Przykład;

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

Ten powyższy przykład połączenia JOIN spowoduje zwrócenie wszystkich wierszy tabeli pracownika wraz ze wszystkimi wierszami tabeli działu.

9. Oracle Anti Joins

Zwroty antijoin zawierają wiersze z tabeli LEWEJ (zgodnie z warunkiem WŁĄCZONYM), w których warunek połączenia jest prawdziwy.

Przykład:

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';

Powyższy przykład Oracle ANTI JOIN zwróci wiersze z tabeli pracowników i gdzie spełniony jest warunek przyłączenia.

10. Oracle Semi łączy

Zwroty semijoin zawierają unikalne wiersze z tabeli LEFT (zgodnie z warunkiem ON), gdzie dopasowanie jest zgodne z podzapytaniem EXISTS.

Przykład:

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

Powyższy przykład Oracle SEMI JOIN zwróci wiersze z tabeli pracowników, jeśli EXISTS zwróci wartość true.

Wniosek

Służy do uzyskiwania dostępu do danych z wielu tabel. W Oracle jest siedem różnych rodzajów złączeń.

Polecane artykuły

To jest przewodnik po łączeniach w Oracle. Tutaj omawiamy wprowadzenie dotyczące połączeń w Oracle i jego 10 różnych typów w połączeniach w Oracle. Możesz również przejrzeć nasze inne powiązane artykuły, aby dowiedzieć się więcej -

  1. Rodzaje złączeń w SQL
  2. Tableau Joins
  3. Oracle Warehouse Builder
  4. Funkcje ciągów Oracle
  5. Co to jest zapytanie i rodzaje zapytań Oracle
  6. Top 6 rodzajów połączeń w MySQL z przykładami
  7. Przewodnik po 9 najlepszych klauzulach Oracle (przykład) l
  8. WYBIERZ w MySQL | Przykłady do wyboru w MySQL

Kategoria: