Introduksjon til Inner Join in Oracle

Sammenføyningsklausulene brukes i Oracle-databasen for å få tilgang til dataene fra flere tabeller for å få informasjon. Det er forskjellige typer sammenføyninger i Oracle-databasen.

Inner join er en av typene sammenføyninger i Oracle-databasen. En indre sammenføyning, bli med i flere tabeller og returner de radene som sammenføyningsbetingelsen er eller er sant. En indre sammenføyning er også kjent som en enkel sammenføyning. Den indre sammenføyningen er den vanligste sammenføyningen blant sammenføyningstyper.

Syntaksen til det indre blir med

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

Den visuelle representasjonen av den indre sammenføyningen er representert i diagrammet nedenfor, ettersom det skyggelagte området går tilbake som et resultat av Oracle Inner Join

Oracle Inner Join returnerer skjæringspostene for t1 og t2 som et resultat.

Spørreeksempler for indre medlemskap

La oss forstå den indre sammenføyningen i detalj ved hjelp av noen av spørreeksemplene:

Eksempel 1

Spørreeksempel for Inner Join

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

Dette ovenfor eksempelet på Oracle INNER JOIN vil returnere alle rader fra medarbeidertabellen og avdelingstabellen der den ansattes verdi i både ansattebordet og avdelingsbordet samsvares.

Vi vurderer her hr-skjemaet som er eksempelskjemaene for orakeldatabasen. Hr-skjemaet inneholder land, ansattes, avdelinger, JOBBHISTORIE, JOBBER, BELIGGENHET, tabeller, der vi er interessert i eller krever ANSATTE, DEPARTMENTS og LOCATIONS tabeller.

Beskrivelsen av disse tabellene er -

Tabell ANSATTE

Tabell AVDELINGER

Tabell BELIGGENHETER

Eksempel 2

Innvendig eksempeleksempel for to tabeller

Her ønsker vi å hente data fra to tabeller ANSATTE og AVDELINGER. Her spørsmålet vi skriver for å hente den ansattes ansatt-ID og ansattes fornavn fra arbeidstakerens bord og avdelingens navn fra avdelingens bord -

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

Produksjon

Spaltenavnene med tabellen går foran av Oracle SELECT-leddet. Hvis en kolonne er felles for begge tabellene, må kolonnenavnet for å være klar forhåndsinnstilt med tabellnavnet. Tabellene hvor dataene skal hentes spesifiserer i fra-leddet med komma-separert. I WHERE-leddet spesifiser sammenføyningsbetingelsen. Forholdet mellom ansatte og avdelingstabeller bestemmes av verdiene i medarbeiderens felles kolonne i begge tabeller må være like, og dette forholdet blir referert til som en Equi Join. Vanligvis primære nøkler og utenlandske nøkler er involvert i denne relasjonen.

Eksempel 3

Innvendig bli eksempel på to tabeller med aliaser

La oss omskrive eksemplet ovenfor ved å bruke Table Aliases som -

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

Produksjon

Som i spørringen ovenfor, blir tabellaliasene opprettet i fra-leddet etter kolonnenavnet, og i stedet for å skrive et fullstendig tabellnavn i valgklausulen før hver kolonne, bruker du tabellen aliaser som e og d i spørsmålet ovenfor.

Eksempel 4

Innvendig eksempeleksempel for to tabeller med legge til tilleggsklausuler

Neste eksempeleksempel der vi legger til flere ledd i Oracle SELECT-setningen der klausul for å legge til aggregeringer, begrense radene som returneres, definerer sorteringsrekkefølgen og så videre. Her er et eksempel forespørsel som henter alle ansatte som jobber i avdelinger Finans, produksjon og konstruksjon.

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

Produksjon

Eksempel 5

Innvendig bli med eksempel på to tabeller med en ordre etter klausul

Neste eksempeleksempel skriver vi om spørringen ovenfor ved å legge til rekkefølgen etter ledd, og viser derfor de ansattes data sortert etter avdelingsnavnet.

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;

Produksjon

Eksempel 6

Eksempel på indre sammenheng for flere tabeller

Noen ganger for å få den informasjonen vi kan trenge for å bli med i mer enn to tabeller. Deretter skriver vi spørreeksemplet for å bli med i flere tabeller. Tenk på eksemplet vi ønsker å hente ansattes fornavn fra medarbeiderbordet, navnet på avdelingen fra avdelingsbordet og landets id for stedet der denne ansatte jobber i stedstabellen.

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;

Produksjon

For å bli med i fire eller flere tabeller gjelder det samme konseptet ved å legge til tabellenavnet i FRA-ledd for et orakel og bruke sammenkoblingsbetingelsen på WHERE-leddet i et orakel.

Konklusjon

Inner join er en av typene sammenføyninger i Oracle-databasen. En indre sammenføyning brukes til å bli med i flere tabeller og returnere de radene som sammenkoblingsbetingelsen er eller er sant. Vanligvis er den primære nøkkelen og den utenlandske nøkkelen involvert i indre sammenføyning for å skape et forhold mellom tabeller.

Anbefalte artikler

Dette er en guide til Inner Join in Oracle. Her diskuterer vi introduksjonen til indre sammen med noen eksempler i detalj. Du kan også gå gjennom de andre foreslåtte artiklene våre for å lære mer–

  1. Bli med i MySQL
  2. Oracle Queries
  3. Oracle Data Warehousing
  4. Hva er Oracle-databasen

Kategori: