Wprowadzenie do Inner Join w Oracle

Klauzule łączenia są używane w bazie danych Oracle, aby uzyskać dostęp do danych z wielu tabel i uzyskać informacje. Istnieją różne typy złączeń w bazie danych Oracle.

Złączenie wewnętrzne jest jednym z rodzajów złączeń w bazie danych Oracle. Łączenie wewnętrzne, łącz wiele tabel i zwracaj wiersze, dla których warunek łączenia jest lub jest spełniony. Łączenie wewnętrzne jest również znane jako łączenie proste. Sprzężenie wewnętrzne jest najczęstszym połączeniem spośród rodzajów złączeń.

Składnia sprzężenia wewnętrznego

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

Wizualna reprezentacja złączenia wewnętrznego jest przedstawiona na poniższym schemacie, ponieważ na poniższym schemacie zacieniony obszar powraca w wyniku połączenia wewnętrznego Oracle

W wyniku połączenia wewnętrznego Oracle zwraca rekordy przecięcia t1 i t2.

Przykłady zapytań dla sprzężenia wewnętrznego

Przyjrzyjmy się szczegółowo złączeniu wewnętrznemu za pomocą niektórych przykładów zapytań:

Przykład 1

Przykład zapytania dla sprzężenia wewnętrznego

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 tabeli pracownika i tabeli działu, w których dopasowana jest wartość _id pracownika w tabeli pracownika i tabeli działu.

Rozważamy tutaj schemat hr, który jest przykładowymi schematami bazy danych Oracle. Schemat hr zawiera tabele KRAJE, PRACOWNICY, DZIAŁY, HISTORIA PRACY, PRACY, LOKALIZACJE, REGIONY, którymi jesteśmy zainteresowani lub wymagamy tabel PRACOWNICY, DZIAŁY i LOKALIZACJE.

Opis tych tabel to:

Tabela PRACOWNICY

Tabela DZIAŁY

Tabela LOKALIZACJE

Przykład nr 2

Przykład połączenia wewnętrznego dla dwóch tabel

W tym miejscu chcielibyśmy pobrać dane z dwóch tabel PRACOWNICY i DZIAŁY. W tym zapytaniu piszemy, aby pobrać identyfikator pracownika i imię pracownika z tabeli pracownika oraz nazwę działu z tabeli działu -

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

Wynik

Nazwy kolumn z tabelą poprzedza klauzula Oracle SELECT. Jeśli kolumna jest wspólna dla obu tabel, to dla jasności nazwa kolumny musi być poprzedzona nazwą tabeli. Tabele, z których mają być pobierane dane, określają w klauzuli from rozdzielone przecinkami. W klauzuli WHERE określ warunek łączenia. Relacja między tabelami pracowników i działów jest określona przez wartości w wspólnej kolumnie pracownik_id w obu tabelach muszą być równe i ta relacja jest nazywana łączeniem Equi. W relację zaangażowane są zwykle klucze podstawowe i klucze obce.

Przykład nr 3

Przykład połączenia wewnętrznego dwóch tabel z aliasami

Przebudujmy powyższy przykład, używając aliasów tabeli jako -

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

Wynik

Podobnie jak w powyższym zapytaniu, aliasy tabeli są tworzone w klauzuli from po nazwie kolumny i zamiast pisać pełną nazwę tabeli w klauzuli select, zanim każda kolumna użyje aliasów tabeli jako eid w powyższym zapytaniu.

Przykład 4

Przykład połączenia wewnętrznego dla dwóch tabel z dodawaniem dodatkowych klauzul

Następny przykład zapytania, w którym dodajemy dodatkowe klauzule do naszej instrukcji Oracle SELECT, gdzie klauzula dodawania agregacji, ograniczania zwracanych wierszy, definiowania kolejności sortowania i tak dalej. Oto przykładowe zapytanie, które pobiera wszystkich pracowników pracujących w działach finansów, produkcji i budownictwa.

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

Wynik

Przykład 5

Przykład połączenia wewnętrznego dwóch tabel z zamówieniem według klauzuli

W kolejnym przykładzie zapytania przepisujemy powyższe zapytanie, dodając zamówienie według klauzuli, tym samym wyświetlając dane pracownika posortowane według nazwy działu.

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;

Wynik

Przykład nr 6

Przykład połączenia wewnętrznego dla łączenia wielu tabel

Czasami, aby uzyskać informacje, możemy potrzebować dołączyć więcej niż dwie tabele. Następnie piszemy przykład zapytania, aby połączyć wiele tabel. Rozważ przykład, w którym chcemy pobrać imię pracownika z tabeli pracownika, nazwę działu z tabeli działu oraz identyfikator kraju lokalizacji, w której pracownik ten pracuje w tabeli lokalizacji.

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;

Wynik

Aby połączyć cztery lub więcej tabel, stosuje się tę samą koncepcję, dodając nazwę tabeli w klauzuli FROM wyroczni i stosując warunek łączenia w klauzuli WHERE wyroczni.

Wniosek

Złączenie wewnętrzne jest jednym z rodzajów złączeń w bazie danych Oracle. Łączenie wewnętrzne używane do łączenia wielu tabel i zwracania tych wierszy, dla których warunek łączenia jest lub jest spełniony. Zazwyczaj klucz podstawowy i klucz obcy są zaangażowane w łączenie wewnętrzne, aby utworzyć relację między tabelami.

Polecane artykuły

To jest przewodnik po wewnętrznym złączeniu w Oracle. Tutaj omawiamy wprowadzenie do łączenia wewnętrznego wraz ze szczegółowymi przykładami. Możesz także przejrzeć nasze inne sugerowane artykuły, aby dowiedzieć się więcej -

  1. Dołącza do MySQL
  2. Zapytania Oracle
  3. Oracle Data Warehousing
  4. Co to jest baza danych Oracle

Kategoria: