SQL INNER JOIN-setning: eksempler, syntaks og funksjoner

Utviklingen av en hvilken som helst database innebærer ikkebare skapelse og fylling av tabeller med en rekke opplysninger, men også videre arbeid med dataene. For riktig utførelse av ulike oppgaver for å velge data fra tabeller og generere rapporter, brukes standard Select konstruksjon.

sql indre sammenføyning eksempel

Data hentes fra tabeller

Hvis vi vurderer problemet med å velge data ellerKonstruksjonen av noen rapport, du kan bestemme nivået på kompleksitet av denne operasjonen. Som regel, når du arbeider med alvorlige databaser (på volumet av informasjon), som dannes, for eksempel i nettbutikker eller store selskaper, vil ikke prøvetaking av data være begrenset til bare ett bord. Vanligvis kan prøvene være fra et ganske stort antall ikke bare sammenkoblede tabeller, men også de nestede spørringene / undersøkelsene som programmereren selv lager, avhengig av oppgaven som er tildelt den. For prøvetaking fra ett bord, kan du bruke det enkleste designet:

Velg * fra Person

hvor Person er navnet på tabellen hvorfra dataene skal velges.

Hvis det er behov for å velge data fra flere tabeller, kan du bruke en av standarddesignene til å kombinere flere tabeller.

Måter å koble til flere tabeller

Hvis vi vurderer bruken av slike strukturer på opprinnelig nivå, kan vi skille mellom følgende mekanismer for å koble det nødvendige antall tabeller til prøven, nemlig:

  1. Operator Inner Join.
  2. Venstre Bli med eller, dette er den andre måten å spille inn, Venstre Outer Join.
  3. Kryss Bli med.
  4. Full Bli med.

Bruken av å bli med operatørbord i praksis kan læres ved å vurdere bruken av operatøren SQL - Inner Join. Et eksempel på bruken vil se slik ut:

Velg * fra Person

Innerforbindelse Inndeling på Su_Person = Pe_ID

SQL-språket og operatøren Join Join Join kan væreBruk ikke bare å slå sammen to eller flere tabeller, men også for å koble til andre undersøkelser, noe som i stor grad letter arbeidet med databaseadministratorer og som regel kan øke gjennomføringen av bestemte strukturelt komplekse spørsmål betydelig.

Kombinere data i tabell rad for rad

operatør sql indre delta eksempler

Hvis du vurderer å koble et stort antall undersøkelser og samle data til en enkelt tabell rad for rad, kan du også bruke Union og Union All operatører.

Bruken av disse designene vil avhenge av oppgaven som er tildelt utvikleren og resultatet som han ønsker å oppnå i slutten.

Beskrivelse av operatør Inner Join

I de fleste tilfeller, for å fusjonere flereTabeller i SQL bruker operatøren Inner Join. Beskrivelsen av Inner Join i SQL er ganske enkelt for en gjennomsnittlig programmerer å forstå, som bare begynner å forstå databasene. Hvis vi vurderer beskrivelsen av operasjonsmekanismen for denne konstruksjonen, får vi følgende bilde. Operatørens logikk som helhet er basert på muligheten til å krysse og samplere bare de dataene som finnes i hver av tabellene som går inn i spørringen.

Hvis vi ser dette arbeidet ut fra grafisk tolkning, får vi strukturen til SQL Inner Join, et eksempel som kan vises ved hjelp av følgende skjema:

sql innsatte syntax eksempler

For eksempel har vi to bord, ordningen deraver vist i figuren. De har i sin tur et annet antall poster. I hver av tabellene er det felt som er koblet sammen. Hvis du prøver å forklare operatørens arbeid basert på figuren, vil det returnerte resultatet være i form av et sett med poster fra to tabeller hvor antallet relaterte felt sammenfaller. Enkelt sagt, spørringen vil bare returnere disse postene (fra tabell nummer to), data om hvilke er i tabellen nummer ett.

Syntaks av Inner Join-operatør

Som nevnt tidligere, er operatøren Inner Join, ogdet er hans syntaks som er uvanlig enkelt. For å organisere koblinger mellom tabeller i en prøve, vil det være nok å huske og bruke følgende hovedordning for å bygge en operatør, som er skrevet inn i en linje av program-SQL-koden, nemlig:

  • Inner Bli med [Navn på bordet] på [nøkkelfelt fra bordet som vi kobler til] = [Nøkkelfelt i det tilkoblede tabellen].

For kommunikasjon i denne operatøren, er hovedmenyenbordtaster. Som regel, i gruppen av tabeller som lagrer informasjon om ansatte, har tidligere beskrevet Person og Underavdeling minst en tilsvarende post. Så, la oss ta en nærmere titt på SQL Inner Join-setningen, et eksempel som ble vist litt tidligere.

Eksempel og beskrivelse av forbindelse til et enkelt bordvalg

Vi har et Personbord hvor vi lagrerInformasjon om alle ansatte som jobber i selskapet. Bare vær oppmerksom på at hovednøkkelen til denne tabellen er feltet - Pe_ID. Bare på den og det vil bli en haug.

Den andre underoppdelingstabellen vil lagreInformasjon om enhetene hvor ansatte jobber. Det er igjen knyttet til hjelpen av Su_Person-feltet med Person-tabellen. Hva sier det? Basert på dataskjemaet kan du si at avdelingstabellen for hver oppføring i tabellene Ansatte vil inneholde opplysninger om avdelingen de arbeider med. Det er for denne tilkoblingen at operatør Inner Join vil fungere.

For en mer forståelig bruk, vurder SQL Inner Join-setningen (eksempler på bruk for en og to tabeller). Hvis vi ser på et eksempel på et enkelt bord, er alt ganske enkelt:

Velg * fra Person

Innerforbindelse Inndeling på Su_Person = Pe_ID

Et eksempel på å koble to bord og en underspørsmål

sql og bli med i den medfølgende operatøren

SQL Inner Bli med operatør, bruk eksemplersom for valg av data fra flere tabeller kan organiseres som ovenfor, virker på et litt mer komplisert prinsipp. For to bord kompliserer vi problemet. For eksempel har vi avgangstabellen, som lagrer informasjon om alle avdelinger i hver avdeling. I denne tabellen registreres avdelingsnummer og ansattes nummer, og dataseksemplet skal suppleres med navn på hver avdeling. Se fremover, det er verdt å si at to metoder kan brukes til å løse dette problemet.

Den første måten er å koble avdelingstabellen til prøven. I dette tilfellet kan du organisere forespørselen på denne måten:

Velg Pe_ID, Pe_Name, Su_Id, Su_Name, Dep_ID, Dep_Name fra Person

Innerforbindelse Inndeling på Su_Person = Pe_ID

Innerforeningen Avreise Su_Depart = Dep_ID og Pe_Depart = Dep_ID

Den andre metoden for å løse problemet er å brukesubquery, der ikke alle data, men bare nødvendige data, blir valgt fra avdelingstabellen. Dette, i motsetning til den første metoden, vil redusere søketiden.

Velg Pe_ID, Pe_Name, Su_Id, Su_Name, Dep_ID, Dep_Name fra Person

Innerforbindelse Inndeling på Su_Person = Pe_ID

Innerforening (Velg Dep_ID, Dep_Name, Pe_Depart fra Avreise) som T på Su_Depart = Dep_ID og Pe_Depart = Dep_ID

Det skal bemerkes at denne utformingen ikke alltid erkan øke hastigheten på spørringen. Noen ganger er det tilfeller når det er nødvendig å bruke ytterligere prøvetaking av data i den midlertidige tabellen (hvis volumet er for stort), og deretter kombineres det med hovedprøven.

Et eksempel på bruk av operatøren Inner Join for valg fra et stort antall tabeller

Å bygge komplekse spørsmål innebærerbruk for å velge data et betydelig antall tabeller og undersøkelser relatert til hverandre. Disse kravene kan tilfredsstille SQL Inner Join-syntaksen. Eksempler på bruken av operatøren i dette tilfellet kan være komplisert, ikke bare av prøver fra mange steder for datalagring, men også fra et stort antall nestede undersøkelser. For et bestemt eksempel kan du ta et utvalg av data fra systemtabeller (operatøren Inner Join SQL). Et eksempel - 3 bord - i dette tilfellet vil ha en ganske kompleks struktur.

indre bli med sql eksempel 3 tabeller

I dette tilfellet legges tre flere til (til hovedbordet) og flere datavalgsbetingelser er oppgitt.

Når operatøren bruker Inner Join erhusk at jo mer komplisert spørringen, desto lengre vil den bli implementert, så det er verdt å lete etter måter å hurtigere utføre og løse oppgaven.

indre bli med sql eksempel 3 tabeller

konklusjon

Til slutt vil jeg gjerne si en ting: Å jobbe med databaser er ikke det vanskeligste i programmeringen, så hvis du ønsker det, kan alle mestre kunnskapen om å bygge databaser, og til slutt få erfaring, vil du kunne jobbe med dem på profesjonelt nivå.

</ p>
likte:
1
Relaterte artikler
Syntaks: hvordan ser denne delen ut?
Uendelig for (Java) loop
Hvordan lage SQL-spørringer - detaljert
Coalesce sql: beskrivelse, funksjoner
MySQL JOIN: beskrivelse, bruk eksempel
Skriv konvertering. Runde og trunk funksjoner
Å ha SQL: beskrivelse, syntaks, eksempler
Bensinstasjon operatør: karrieremuligheter
Datoperatør
Populære innlegg
opp