Introductie tot Joins in Oracle

Joins in Oracle worden gebruikt om toegang te krijgen tot de gegevens uit meerdere tabellen. Een join-orakel wordt gebruikt op een plaats waar meer dan twee tabellen moeten worden samengevoegd om de nuttige informatie in de Oracle SQL-instructie te verzamelen. Met andere woorden, de join-query die wordt gebruikt om de rijen op te halen uit meer dan twee tabellen of views op basis van de join-voorwaarden. De join-voorwaarde kan worden opgegeven in de clausule FROM of in de clausule Where. De join-voorwaarde vergelijkt de kolommen van de verschillende tabellen en haalt die rijen op waarvoor de join-voorwaarde waar is.

Soorten joins in Oracle

In Oracle zijn er tien verschillende typen joins, zoals hieronder aangegeven:

  • Inner Joins (ook bekend als Simple Joins)
  • Equi sluit zich aan
  • Outer Joins
  • Left Joins (ook wel Left Joins genoemd)
  • Right Outer Joins (ook wel Right Joins genoemd)
  • Full Joins (ook wel Full Joins genoemd)
  • Zelf sluit zich aan
  • Cross Joins (ook wel Cartesian Products genoemd)
  • Anti Joins
  • Semi-joins

Vervolgens begrijpen we elke joins gedetailleerd met de syntaxis en voorbeelden.

1. INNER JOIN (ook bekend als Simple Join)

Innerlijke joins voegen de meerdere tabellen samen en retourneren die rijen waarvoor de join-voorwaarde waar is. De binnenste join is de meest voorkomende join onder de typen join.

Syntaxis:

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

Het onderstaande diagram geeft de visuele weergave van de binnenste join weer, omdat in het diagram het gearceerde gebied terugkeert als resultaat van de Oracle INNER JOIN:

De Oracle INNER JOIN retourneert als resultaat de snijpunten van t1 en t2.

Voorbeeld:

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

Dit bovenstaande voorbeeld van Oracle INNER JOIN retourneert alle rijen uit de tabellen voor medewerkers en afdelingen waar de waarde _id van werknemer in zowel de tabellen voor medewerkers als afdelingen overeenkomt.

2. Equi sluit zich aan

Oracle Equi Joins haalt de overeenkomende kolomwaarden van de meerdere tabellen op. De join-voorwaarde of de vergelijkingsoperator in de WHERE-component van de select-instructie.

Syntaxis:

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

Het onderstaande diagram geeft de visuele weergave van de equijoin weer, omdat in het diagram het gearceerde gebied terugkeert als resultaat van de Oracle Equi Join.

De Oracle Equijoin retourneert als resultaat de snijpunten van t1 en t2.

Voorbeeld:

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

Dit bovenstaande voorbeeld van Oracle Equijoin retourneert alle rijen uit de tabellen voor medewerkers en afdelingen waar de waarde _id van werknemer in zowel de tabellen voor medewerkers als afdelingen overeenkomt.

3. Buitenste joins

Een ander type joins is een outer join die een resultaat retourneert van een inner join plus alle rijen uit één tabel waarvoor de join-voorwaarde niet waar is.

Syntaxis:

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

Er zijn drie soorten buitenste naden zoals hieronder aangegeven:

  • Left Joins (ook wel Left Joins genoemd)
  • Right Outer Joins (ook wel Right Joins genoemd)
  • Full Joins (ook wel Full Joins genoemd)

4. Linker buitenaansluiting

De Left Outer Join-retouren bevatten alle rijen uit de LINKER-tabel (volgens de opgegeven in AAN-voorwaarde) en uit de andere tabel alleen die rijen waar de gekoppelde voorwaarde waar is.

Syntaxis:

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

Gebruik het trefwoord LEFT OUTER JOIN, gebruik een LEFT JOIN in sommige andere databases.

Het onderstaande diagram geeft de visuele weergave van de LEFT OUTER JOIN, omdat in het diagram het gearceerde gebied terugkeert als resultaat van de Oracle LEFT OUTER JOIN:

De Oracle LEFT OUTER JOIN retourneert als resultaat alle records van t1 en de snijpunten van t1 en t2.

Voorbeeld:

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

Dit bovenstaande voorbeeld van Oracle LEFT OUTER JOIN retourneert alle rijen uit de medewerkerstabel en uit de afdelingslijst alleen die rijen waar de gekoppelde voorwaarde waar is. De afdelingstabellen waarbij de waarde van de werknemer _id in zowel de werknemer- als de afdelingstabellen overeenkomen.

Als de waarde van de medewerker _id in de tabel van de medewerker overeenkomt in de afdelingstabel, dan zijn de velden van de afdelingstabel nul in het resultaat.

5. Rechts buiten lid worden

De RIGHT OUTER JOIN-retouren bevatten alle rijen uit de tabel RECHTS (volgens de opgegeven in AAN-voorwaarde) en uit de andere tabel alleen die rijen waar de gekoppelde voorwaarde waar is.

Syntaxis:

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

Het sleutelwoord JUISTE BUITENKANT, gebruik als RECHTSKOPPEL in sommige andere databases.

Het onderstaande diagram geeft de visuele weergave van de JUISTE BUITENKANT, zoals in het diagram het gearceerde gebied terugkeert als het resultaat van de JUISTE BUITENKANT van Oracle.

De Oracle RIGHT OUTER JOIN retourneert als resultaat alle records van t2 en de snijpunten van t1 en t2.

Voorbeeld:

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

Dit bovenstaande voorbeeld van Oracle LEFT OUTER JOIN retourneert alle rijen uit de afdelingslijst en uit de medewerkerstabel alleen die rijen waar de gekoppelde voorwaarde waar is. De medewerkertabellen waarbij de waarde van de medewerker _id in zowel de medewerker- als de afdelingstafels overeenkomen.

Als de waarde van de werknemer _id in de tabel van de werknemer overeenkomt in de afdelingstabel, dan zijn de velden van de tabel van de werknemer nul in het resultaat.

6. Volledige deelname aan de buitenwereld

De retouren Volledige buitenste join bevatten alle rijen uit de tabel LINKS en de tabel RECHTS met null in velden waar de join-voorwaarde niet waar is.

Syntaxis:

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

Het sleutelwoord VOLLEDIGE BUITENKANT, gebruik als VOLLEDIGE KOPPEL in sommige andere databases.

Het onderstaande diagram geeft de visuele weergave van de FULL OUTER JOIN, omdat in het diagram het gearceerde gebied terugkeert als het resultaat van de Oracle FULL OUTER JOIN.

De Oracle FULL OUTER JOIN retourneert als resultaat alle records uit de tabellen t1 en t2.

Voorbeeld:

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

Dit bovenstaande voorbeeld van Oracle FULL OUTER JOIN retourneert alle rijen uit de medewerkerstabel en uit de afdelingslijst met null-waarden waarbij de gekoppelde voorwaarde niet waar is.

7. Oracle zelf sluit zich aan

In self join wordt de tabel twee keer gebruikt in de clausule FROM met behulp van de naam van de tabelaliassen. Met andere woorden, het zelf sluit zich aan, neemt deel aan een tafel zelf. De Oracle Self Join combineert en retourneert rijen van de tabel waar de join-voorwaarde waar is.

Voorbeeld:

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;

Dit bovenstaande voorbeeld van Oracle self JOIN retourneert alle rijen uit de tabel met werknemers waar de gekoppelde voorwaarde waar is.

8. Oracle Cross Joins (ook wel Cartesian Products genoemd)

Cross join is van toepassing wanneer de twee tabellen geen join-voorwaarde hebben. De cross join retourneert het Cartesiaanse product van de twee tabellen, Cartesiaans product waarbij elke rij van een tabel combineert met elke rij van de andere tabel. Stel dat tabel1 100 rijen bevat en tabel2 10 rijen, dan zou het join-resultaat 1000 rijen bevatten.

Voorbeeld;

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

Dit bovenstaande voorbeeld van kruis-JOIN retourneert alle rijen van de medewerkerstabel gecombineerd met alle rijen van de afdelingslijst.

9. Oracle Anti Joins

De antijoin-retouren bevatten rijen uit de tabel LINKS (volgens de opgegeven in AAN-voorwaarde) waar de gekoppelde voorwaarde waar is.

Voorbeeld:

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

Dit bovenstaande voorbeeld van Oracle ANTI JOIN retourneert rijen uit de tabel met medewerkers en waar de gekoppelde voorwaarde waar is.

10. Oracle Semi Joins

De retouren van de semijoin bevatten unieke rijen uit de tabel LINKS (volgens de opgegeven in AAN-voorwaarde) waar de overeenkomst een EXISTS subquery waar is.

Voorbeeld:

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

Dit bovenstaande voorbeeld van Oracle SEMI JOIN retourneert rijen uit de tabel met medewerkers als EXISTS true retourneert.

Conclusie

Het wordt gebruikt om toegang te krijgen tot de gegevens uit meerdere tabellen. Er zijn zeven verschillende typen joins in een Oracle.

Aanbevolen artikelen

Dit is een gids voor Joins in Oracle. Hier bespreken we een inleiding over Joins in Oracle en de 10 verschillende typen in Joins in Oracle. U kunt ook onze andere gerelateerde artikelen doornemen voor meer informatie -

  1. Typen joins in SQL
  2. Tableau sluit zich aan
  3. Oracle Warehouse Builder
  4. Oracle String-functies
  5. Wat is een zoekopdracht en soorten Oracle-zoekopdrachten
  6. Top 6 soorten joins in MySQL met voorbeelden
  7. Handleiding voor de Top 9 Oracle-clausules (voorbeeld) l
  8. SELECT in MySQL | Voorbeelden van SELECT in MySQL

Categorie: