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 -
- Dołącza do MySQL
- Zapytania Oracle
- Oracle Data Warehousing
- Co to jest baza danych Oracle