Introduktion til Joins in Oracle

Joins i Oracle bruges til at få adgang til dataene fra flere tabeller. En sammenknytning i oracle bruges et sted, hvor mere end to tabeller skal slås sammen for at indsamle nyttige oplysninger i Oracle SQL-sætningen. Med andre ord sammenføjningsforespørgslen, der bruges til at hente rækkerne fra mere end to tabeller eller visninger, baseret på sammenbindingsbetingelserne. Samlet betingelse kan specificeres i FROM-klausulen eller i hvor-klausulen. Forbindelsesbetingelsen sammenligner kolonnerne i de forskellige tabeller og henter de rækker, som sammenkoblingsbetingelsen er sand for.

Typer af sammenføjninger i Oracle

I Oracle er der ti forskellige typer sammenføjninger som beskrevet nedenfor:

  • Indre forbindelser (også kendt som Simple Joins)
  • Equi slutter sig til
  • Yderforbindelser
  • Venstre yderforbindelse (også kaldet som venstreforbindelse)
  • Højre ydre forbindelser (kaldes også som højre forbindelser)
  • Full Outer Joins (også kaldet Full Joins)
  • Selvforbindelser
  • Krydsforbindelser (også kaldet kartesiske produkter)
  • Anti sammenføjninger
  • Semi Joins

Dernæst forstår vi, at hver sammenføjes detaljeret med syntaks og eksempler.

1. INNER JOIN (også kendt som Simple Join)

Indvendige sammenføjninger slutter sig til de flere tabeller og returnerer de rækker, som sammenkoblingsbetingelsen er sand for. Den indre sammenføjning er den mest almindelige sammenføjning blandt sammenføjningstyperne.

Syntaks:

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

Nedenstående diagram repræsenterer den visuelle repræsentation af den indvendige sammenføjning, da det i skemaet det skraverede område vender tilbage som et resultat af Oracle INNER JOIN:

Oracle INNER JOIN returnerer de krydsende poster over t1 og t2 som et resultat.

Eksempel:

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

Dette ovenfor eksempel på Oracle INNER JOIN returnerer alle rækker fra medarbejder- og afdelingstabellerne, hvor medarbejderens værdi i både medarbejder- og afdelingstabellerne matcher.

2. Equi Joins

Oracle Equi Joins henter de matchende kolonneværdier for de flere tabeller. Forbindelsesbetingelsen eller sammenligningsoperatøren, der findes i WHERE-klausulen i den valgte erklæring.

Syntaks:

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

Nedenstående diagram repræsenterer den visuelle repræsentation af equijoin, som i diagrammet det skraverede område vender tilbage som et resultat af Oracle Equi Join.

Oracle Equijoin returnerer de krydsende poster over t1 og t2 som et resultat.

Eksempel:

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

Dette ovenstående eksempel på Oracle Equijoin vil returnere alle rækker fra medarbejder- og afdelingstabellerne, hvor medarbejderens værdi i både medarbejder- og afdelingstabellerne stemmer overens.

3. Yderforbindelse

En anden type sammenføjninger er en ydre sammenføjning, der returnerer et resultat af en indvendig sammenføjning plus alle rækker fra et bord, hvor sammenkoblingsbetingelsen ikke er sand.

Syntaks:

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

Der er tre typer ydre sammenføjninger som beskrevet nedenfor:

  • Venstre yderforbindelse (også kaldet som venstreforbindelse)
  • Højre ydre forbindelser (kaldes også som højre forbindelser)
  • Full Outer Joins (også kaldet Full Joins)

4. Venstre yderforbindelse

Venstre yderforbindelsesretur indeholder alle rækker fra LEFT-tabellen (i henhold til den angivne i tilstanden ON) og fra den anden tabel kun de rækker, hvor den sammenkoblede betingelse er sand.

Syntaks:

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

Nøgleordet LEFT OUTER JOIN, brug et LEFT JOIN i nogle andre databaser.

Nedenstående diagram repræsenterer den visuelle repræsentation af VENSTRE YDRE JOIN, som i diagrammet vender det skraverede område tilbage som resultat af Oracle LEFT OUTER JOIN:

Oracle LEFT OUTER JOIN returnerer alle poster fra t1 og krydser posterne for t1 og t2 som et resultat.

Eksempel:

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

Dette ovenstående eksempel på Oracle LEFT OUTER JOIN vil returnere alle rækker fra medarbejderbordet og fra afdelingstabellen kun de rækker, hvor den sammenhængende tilstand er sand. Afdelingstabellerne, hvor medarbejderens id værdi i både medarbejder- og afdelingstabellerne matcher.

Hvis medarbejderens id-værdi i medarbejdertabellen stemmer overens med afdelingstabellen, vil felterne i afdelingstabellen være null i resultatet.

5. Højre ydre sammenføjning

RIGHT OUTER JOIN-returneringerne indeholder alle rækker fra RIGHT-tabellen (i henhold til den angivne i tilstanden ON) og fra den anden tabel kun de rækker, hvor den sammenhængende tilstand er sand.

Syntaks:

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

RIGHT OUTER JOIN-søgeordet, bruges som RIGHT JOIN i nogle andre databaser.

Nedenstående diagram repræsenterer den visuelle repræsentation af RIGHT OUTER JOIN, som i diagrammet vender det skraverede område tilbage som resultat af Oracle RIGHT OUTER JOIN.

Oracle RIGHT OUTER JOIN returnerer alle poster fra t2 og krydser posterne for t1 og t2 som et resultat.

Eksempel:

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

Dette ovenstående eksempel på Oracle LEFT OUTER JOIN vil returnere alle rækker fra afdelingstabellen og fra medarbejderbordet kun de rækker, hvor den sammenlagte tilstand er sand. Medarbejdertabellerne, hvor medarbejderens værdi i både medarbejder- og afdelingstabellerne stemmer overens.

Hvis medarbejderens id værdi i medarbejderbordet stemmer overens med afdelingstabellen, vil felterne i medarbejdertabellen være null i resultatet.

6. Fuld ydre samling

Full Outer Join-returnerne indeholder alle rækker fra LEFT-tabellen og HØJRE-tabellen med null i felter, hvor sammenkoblingsbetingelsen ikke er sand.

Syntaks:

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

Nøgleordet FULL OUTER JOIN, bruges som FULL JOIN i nogle andre databaser.

Nedenstående diagram repræsenterer den visuelle repræsentation af FULL OUTER JOIN, som i diagrammet vender det skraverede område tilbage som resultat af Oracle FULL OUTER JOIN.

Oracle FULL OUTER JOIN returnerer alle poster fra t1 og t2 tabeller som et resultat.

Eksempel:

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

Dette ovenstående eksempel på Oracle FULL OUTER JOIN returnerer alle rækker fra medarbejderbordet og fra afdelingstabellen med nulværdier, hvor den sammenhængende tilstand ikke er sand.

7. Oracle Self Joins

Deltag i tabellen bruger to gange i FROM-klausulen ved hjælp af navnet på tabelaliaser. Med andre ord, selvet slutter sig sammen, slutter sig til et bord selv. Oracle Self Join kombinerer og returnerer rækker i tabellen, hvor sammenkoblingsbetingelsen er sand.

Eksempel:

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;

Dette ovenfor Oracle self JOIN-eksempel vil returnere alle rækker fra medarbejderbordet, hvor den tilknyttede betingelse er sand.

8. Oracle Cross Joins (også kaldet Cartesian Products)

Krydsforbindelse gælder, hvor de to tabeller ikke har sammenføjningstilstand. Krydsforbindelsen returnerer det kartesiske produkt af de to tabeller, kartesisk produkt, hvor hver række i et bord kombineres med hver række i det andet bord. Antag, at tabel1 indeholder 100 rækker, og tabel2 indeholder 10 rækker, så sammenføjningsresultatet vil indeholde 1000 rækker.

Eksempel;

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

Dette ovenfor krydsede JOIN-eksempel vil returnere alle rækker medarbejderbord kombineret med alle rækker på afdelingstabellen.

9. Oracle Anti Joins

Antijoin-returerne indeholder rækker fra VENSTRE-tabellen (i henhold til den specificerede i ON-tilstand), hvor den sammenkoblede tilstand er sand.

Eksempel:

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

Dette ovenstående eksempel på Oracle ANTI JOIN returnerer rækker fra medarbejderbordet, og hvor den sammenkoblede betingelse er sand.

10. Oracle Semi Joins

Semijoin-returneringerne indeholder unikke rækker fra VENSTRE-tabellen (i henhold til den specificerede i ON-tilstand), hvor matchen til en EXISTS-underspørgsel er sand.

Eksempel:

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

Dette ovenstående eksempel på Oracle SEMI JOIN returnerer rækker fra medarbejderbordet, hvis EXISTS returnerer sandt.

Konklusion

Det bruges til at få adgang til dataene fra flere tabeller. Der er syv forskellige typer sammenføjninger i en Oracle.

Anbefalede artikler

Dette er en guide til Joins i Oracle. Her diskuterer vi en introduktion om Joins in Oracle og dens 10 forskellige typer i Joins in Oracle. Du kan også gennemgå vores andre relaterede artikler for at lære mere -

  1. Typer af sammenføjninger i SQL
  2. Tableau slutter sig til
  3. Oracle Warehouse Builder
  4. Oracle strengfunktioner
  5. Hvad er en forespørgsel og typer af Oracle-forespørgsler
  6. Top 6 typer sammenføjninger i MySQL med eksempler
  7. Vejledning til de øverste 9 Oracle-klausuler (eksempel) l
  8. VÆLG i MySQL | Eksempler på SELECT i MySQL

Kategori: