Introduktion till Joins in Oracle

Joins i Oracle används för att få åtkomst till data från flera tabeller. En sammanfogning i oracle används på en plats där mer än två tabeller ska förenas för att samla in användbar information i Oracle SQL-uttalandet. Med andra ord kopplingsfrågan som används för att hämta raderna från mer än två tabeller eller vyer baserade på kopplingsvillkoren. Kopplingsvillkoret kan anges i FROM-klausulen eller i var-klausulen. Kopplingsvillkoret jämför kolumnerna i de olika tabellerna och hämtar de rader för vilka kopplingsvillkoret är sant.

Typer av sammanfogningar i Oracle

I Oracle finns det tio olika typer av sammanfogningar som anges nedan:

  • Inre Joins (även känd som Simple Joins)
  • Equi Joins
  • Yuter Joins
  • Vänster yttre sammanfogningar (även kallad vänsterföreningar)
  • Right Yuter Joins (kallas också som Right Joins)
  • Full Outer Joins (även kallad Full Joins)
  • Själv går med
  • Korsfogar (även kallad Cartesian Products)
  • Anti Joins
  • Semi Joins

Därefter förstår vi varje sammanfogning i detalj med syntaxen och exemplen.

1. INNER JOIN (även känd som Simple Join)

Inre sammanfogningar gå med i flera tabeller och returnerar de rader för vilka sammanfogningsvillkoret är sant. Den inre sammanfogningen är den vanligaste sammanfogningen bland typerna av fogar.

Syntax:

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

Diagrammet nedan representerar den visuella representationen av den inre kopplingen, som i diagrammet det skuggade området återgår som ett resultat av Oracle INNER JOIN:

Oracle INNER JOIN returnerar skärningsposterna av t1 och t2 som resultat.

Exempel:

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

Detta ovan exempel på Oracle INNER JOIN kommer att returnera alla rader från medarbetar- och avdelningstabellerna där medarbetarens _id-värde i både anställd- och avdelningstabellerna matchar.

2. Equi Joins

Oracle Equi Joins hämtar de matchande kolumnvärdena för flera tabeller. Kopplingsvillkoret eller jämförelsesoperatören som finns i WHERE-klausulen i det valda uttalandet.

Syntax:

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

Diagrammet nedan representerar den visuella representationen av equijoin, som i diagrammet det skuggade området återgår som ett resultat av Oracle Equi Join.

Oracle Equijoin returnerar skärningspunkterna för t1 och t2 som resultat.

Exempel:

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

Detta ovanför Oracle Equijoin-exemplet kommer att returnera alla rader från medarbetar- och avdelningstabellerna där medarbetarnas värde i både anställds- och avdelningstabellerna matchar.

3. Yttre sammanfogningar

En annan typ av sammanfogningar är en yttre förbindning som returnerar ett resultat av en inre förbindning plus alla raderna från ett bord för vilket förbindningsvillkoret inte är sant.

Syntax:

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

Det finns tre typer av ytterförband enligt nedan:

  • Vänster yttre sammanfogningar (kallas också som vänsterföreningar)
  • Right Yuter Joins (kallas också som Right Joins)
  • Full Outer Joins (även kallad Full Joins)

4. Vänster yttre koppling

Vänster yttre sammankoppling innehåller alla rader från Vänster-tabellen (enligt det angivna i ON-tillstånd) och från den andra tabellen endast de rader där det sammanfogade villkoret är sant.

Syntax:

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

Nyckelordet LEFT OUTER JOIN använder en LEFT JOIN i vissa andra databaser.

Diagrammet nedan representerar den visuella representationen av Vänster yttre förbindning, som i diagrammet återgår det skuggade området som resultat av Oracle VÄNSTERUTLEDNING:

Oracle LEFT OUTER JOIN returnerar alla poster från t1 och skärningsposterna av t1 och t2 som resultat.

Exempel:

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

Detta ovan exempel på Oracle LEFT OUTER JOIN kommer att returnera alla rader från medarbetarbordet och från avdelningstabellen endast de rader där det sammanfogade villkoret är sant. Avdelningstabellerna där anställdens värde i både anställda och avdelningstabellerna matchar.

Om medarbetarnas värde i medarbetartabellen stämmer överens i avdelningstabellen, kommer fälten i avdelningstabellen att vara ogiltiga i resultatet.

5. Höger yttre koppling

RIGHT OUTER JOIN-returerna innehåller alla rader från RIGHT-tabellen (enligt det angivna i ON-tillståndet) och från den andra tabellen endast de rader där det sammanfogade villkoret är sant.

Syntax:

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

RIGHT OUTER JOIN-sökordet, använd som RIGHT JOIN i vissa andra databaser.

Diagrammet nedan representerar den visuella representationen av RIGHT OUTER JOIN, som i diagrammet kommer det skuggade området tillbaka som resultat av Oracle RIGHT OUTER JOIN.

Oracle RIGHT OUTER JOIN returnerar alla poster från t2 och korsningsposterna av t1 och t2 som resultat.

Exempel:

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

Detta ovanstående exempel på Oracle LEFT OUTER JOIN kommer att returnera alla rader från avdelningstabellen och från anställdstabellen endast de rader där det sammanfogade villkoret är sant. Medarbetartabellerna där anställdens värde i både medarbetar- och avdelningstabellerna matchar.

Om medarbetarnas värde i medarbetartabellen stämmer överens i avdelningstabellen, kommer fälten i medarbetartabellen att vara ogiltiga i resultatet.

6. Full Outer Join

Full Outer Join-returer innehåller alla rader från Vänster-tabellen och HÖGER-tabellen med noll i fält där kopplingsvillkoret inte är sant.

Syntax:

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

Nyckelordet FULL OUTER JOIN, använd som FULL JOIN i vissa andra databaser.

Diagrammet nedan representerar den visuella representationen av FULL OUTER JOIN, som i diagrammet kommer det skuggade området tillbaka som resultat av Oracle FULL OUTER JOIN.

Oracle FULL OUTER JOIN returnerar alla poster från t1 och t2 tabeller som resultat.

Exempel:

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

Detta ovan exempel på Oracle FULL OUTER JOIN kommer att returnera alla rader från medarbetartabellen och från avdelningstabellen med nollvärden där det sammanfogade villkoret inte är sant.

7. Oracle Self Joins

I själv gå med i tabellen två gånger i FROM-klausulen med hjälp av tabellaliasnamn. Med andra ord, jaget går med, gå med i ett bord själv. Oracle Self Join kombinerar och returnerar rader i bordet där sammankopplingsvillkoret är sant.

Exempel:

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;

Detta ovan Oracle self JOIN-exempel kommer att returnera alla rader från medarbetarbordet där det förenade villkoret är sant.

8. Oracle Cross Joins (även kallad Cartesian Products)

Tvärbindning gäller där de två borden inte har något sammanfogningsvillkor. Tvärkopplingen returnerar den kartesiska produkten från de två borden, kartesisk produkt där varje rad i ett bord kombineras med varje rad i det andra bordet. Anta att tabell1 innehåller 100 rader och tabell2 innehåller 10 rader då sammanfogningsresultatet skulle innehålla 1000 rader.

Exempel;

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

Detta ovanstående JOIN-exempel kommer att returnera alla rader med anställdtabell i kombination med alla rader i avdelningstabellen.

9. Oracle Anti Joins

Antijoin-returerna innehåller rader från Vänster-tabellen (enligt det angivna i ON-tillstånd) där det sammanfogade villkoret är sant.

Exempel:

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

Detta ovanstående exempel på Oracle ANTI JOIN kommer att returnera rader från medarbetarbordet och där det förenade villkoret är sant.

10. Oracle Semi Joins

Semijoin-returerna innehåller unika rader från Vänster-tabellen (enligt det angivna i ON-tillstånd) där matchningen med en EXISTS-undersökning är sann.

Exempel:

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

Detta ovan Oracle SEMI JOIN-exempel kommer att returnera rader från medarbetartabellen om EXISTS returnerar sant.

Slutsats

Det används för att komma åt data från flera tabeller. Det finns sju olika typer av sammanfogningar i ett Oracle.

Rekommenderade artiklar

Detta är en guide till Joins in Oracle. Här diskuterar vi en introduktion om Joins in Oracle och dess 10 olika typer i Joins in Oracle. Du kan också gå igenom våra andra relaterade artiklar för att lära dig mer -

  1. Typer av sammanfogningar i SQL
  2. Tableau går med
  3. Oracle Warehouse Builder
  4. Oracle strängfunktioner
  5. Vad är en fråga och typer av Oracle-frågor
  6. Topp 6 typer av sammanfogningar i MySQL med exempel
  7. Guide till de 9 bästa Oracle-klausulerna (exempel) l
  8. VÄLJ i MySQL | Exempel på SELECT i MySQL

Kategori: