SQL INNER JOIN statement: eksempler, syntaks og funktioner

Udviklingen af ​​enhver database betyder ikkeKun oprettelse og udfyldning af tabeller med en bred vifte af oplysninger, men også yderligere arbejde med dataene. For korrekt udførelse af forskellige opgaver til valg af data fra tabeller og generering af rapporter anvendes standard Select konstruktionen.

sql indre tilslutningseksempel

Data hentes fra tabeller

Hvis vi overvejer problemet med at vælge data ellerkonstruere en rapport, kan du bestemme graden af ​​kompleksitet af operationen. Som regel, når der beskæftiger sig med alvorlige (ifølge volumen) databaser, som er dannet, for eksempel i online-butikker eller store virksomheder, udvælgelse af data er ikke begrænset til et enkelt bord. Som regel kan prøven være fra et ret stort antal ikke kun sammenkædede tabeller, men også indlejrede forespørgsler / sub-forespørgsler, hvilket gør programmøren, afhængigt af dens opgave. Til prøveudtagning fra et bord kan du bruge det enkleste design:

Vælg * fra Person

hvor Person er navnet på tabellen, hvorfra dataene skal vælges.

Hvis der er behov for at vælge data fra flere tabeller, kan du bruge et af standarddesignerne til at kombinere flere tabeller.

Måder at forbinde yderligere tabeller

Hvis vi overvejer brugen af ​​sådanne strukturer på det oprindelige niveau, kan vi skelne mellem følgende mekanismer for at forbinde det nødvendige antal tabeller til prøven, nemlig:

  1. Operator Inner Join.
  2. Venstre Deltag eller, dette er den anden måde at optage, Venstre Outer Join.
  3. Cross Join.
  4. Fuldt medlem.

Brugen af ​​deltagere tabeller i praksis kan læres ved at overveje brugen af ​​operatøren SQL - Inner Join. Et eksempel på dets brug vil se sådan ud:

Vælg * fra Person

Indvendig delt inddeling på Su_Person = Pe_ID

SQL-sproget og Join Join-operatøren kan væreBrug ikke kun til at fusionere to eller flere tabeller, men også for at forbinde andre underkategorier, hvilket i høj grad letter arbejdet i databaseadministratorer og som regel kan fremskynde udførelsen af ​​visse strukturelt komplekse forespørgsler betydeligt.

Kombinerer data i tabeller række for række

operator sql indre tilslutte eksempler

Hvis du overvejer at forbinde et stort antal underforespørgsler og samle data i en enkelt tabel række for række, kan du også bruge Union og Union All operatører.

Anvendelsen af ​​disse designs vil afhænge af den opgave, der er tildelt udvikleren og det resultat, som han ønsker at opnå i sidste ende.

Beskrivelse af operatør Inner Join

I de fleste tilfælde at slå sammen fleretabeller i SQL bruger operatøren Inner Join. Beskrivelsen af ​​Innersammenføjning i SQL er ret simpel for en gennemsnitlig programmør at forstå, som lige er begyndt at forstå databaserne. Hvis vi overvejer beskrivelsen af ​​mekanismen for driften af ​​denne konstruktion, får vi det følgende billede. Operatørens logik som helhed er baseret på muligheden for kun at krydse og stikprøve de data, der findes i hver af de tabeller, der indgår i forespørgslen.

Hvis vi betragter dette arbejde ud fra grafisk fortolkning, får vi strukturen i SQL Inner Join, hvoraf et eksempel kan vises ved hjælp af følgende skema:

sql indre tilslutte syntakseksempler

For eksempel har vi to tabeller, hvis ordninger vist i fig. De, til gengæld har et forskelligt antal poster. I hver af tabellerne har felter, der er relateret. Hvis vi forsøger at forklare det arbejde, som operatør på grundlag af tegningen, vil det returnerede resultat være et sæt af poster fra to tabeller, hvor værelserne er indbyrdes forbundne felter er sammenfaldende. Kort sagt, den forespørgsel returnerer kun de poster (i tabel nummer to), hvis data er i nummer et bord.

Syntaks af Inner Join-operatør

Som tidligere nævnt er operatøren Inner Join, ogdet er hans syntaks, der er usædvanligt simpelt. Hvis du vil organisere links mellem tabeller inden for en prøve, er det nok at huske og bruge følgende hovedskema for at opbygge en operatør, som er skrevet til en linje i programmets SQL-kode, nemlig:

  • Indre Deltag [Navn på bordet] på [Nøglefelt fra den tabel, som vi tilslutter] = [Nøglefelt i den tilsluttede tabel].

Til kommunikation i denne operatør, hovedmenuenbordtaster. Som regel har i den gruppe af tabeller, der lagrer oplysninger om medarbejdere, tidligere beskrevet person og underafdeling mindst en tilsvarende post. Så lad os se nærmere på SQL Inner Join-udsagnet, hvoraf et eksempel blev vist lidt tidligere.

Eksempel og beskrivelse af forbindelse til et enkelt bordvalg

Vi har en Personbord hvor vi opbevarerOplysninger om alle medarbejdere, der arbejder i virksomheden. Bemærk blot, at hovedtasten i denne tabel er feltet - Pe_ID. Bare på det og der vil være en flok.

Den anden underopdelingstabel vil gemmeOplysninger om de enheder, hvor medarbejderne arbejder. Det er igen forbundet med hjælp af Su_Person-feltet med Person-tabellen. Hvad siger det? Baseret på dataskemaet kan man sige, at afdelingsoversigten for hver indgang i medarbejderbordet indeholder oplysninger om den afdeling, hvor de arbejder. Det er for denne forbindelse, at operatøren Inner Join vil arbejde.

For en mere forståelig brug skal du overveje SQL Inner Join-erklæringen (eksempler på dens anvendelse til en og to tabeller). Hvis vi overvejer et eksempel på et enkelt bord, så er alt ret simpelt:

Vælg * fra Person

Indvendig delt inddeling på Su_Person = Pe_ID

Et eksempel på at forbinde to tabeller og en underforespørgsel

sql og slutte sig til den indre samarbejdspartner

SQL Inner Tilmeld operatør, brug eksemplersom til udvælgelse af data fra flere tabeller kan organiseres som ovenfor, fungerer på et lidt mere kompliceret princip. For to tabeller komplicerer vi problemet. For eksempel har vi afgangstabellen, som gemmer information om alle afdelinger i hver afdeling. I denne tabel registreres afdelingens nummer og medarbejdernummer, og dataprøven skal suppleres med navnet på hver afdeling. I fremtiden er det værd at sige, at to metoder kan bruges til at løse dette problem.

Den første måde er at forbinde afdelingsbordet til prøven. I dette tilfælde kan du organisere anmodningen på denne måde:

Vælg Pe_ID, Pe_Name, Su_Id, Su_Name, Dep_ID, Dep_Name fra Person

Indvendig delt inddeling på Su_Person = Pe_ID

Indvendig afslut Afgang på Su_Depart = Dep_ID og Pe_Depart = Dep_ID

Den anden metode til løsning af problemet er at brugesubquery, hvor ikke alle data men kun nødvendige data vil blive valgt fra afdelingsbordet. Dette, i modsætning til den første metode, vil reducere forespørgslen.

Vælg Pe_ID, Pe_Name, Su_Id, Su_Name, Dep_ID, Dep_Name fra Person

Indvendig delt inddeling på Su_Person = Pe_ID

Indvendig deltage (Vælg Dep_ID, Dep_Name, Pe_Depart fra Depart) som T på Su_Depart = Dep_ID og Pe_Depart = Dep_ID

Det skal bemærkes, at dette design ikke altid erkan fremskynde forespørgslen. Nogle gange er der tilfælde, hvor det er nødvendigt at bruge yderligere prøveudtagning af data i den midlertidige tabel (hvis deres volumen er for stor), og så kombineres den med hovedprøven.

Et eksempel på at bruge operatøren Innerforbindelse til valg fra et stort antal tabeller

Opbygning af komplekse forespørgsler indebærerbrug for at vælge data et betydeligt antal tabeller og underforespørgsler relateret til hinanden. Disse krav kan tilfredsstille SQL Inner Join-syntaksen. Eksempler på brugen af ​​operatøren i dette tilfælde kan være kompliceret ikke kun af prøver fra mange steder af datalagring, men også fra et stort antal indlejrede undergrupper. For et specifikt eksempel kan du tage en stikprøve af data fra systemtabeller (operatoren Inner Join SQL). Et eksempel - 3 tabeller - i dette tilfælde vil have en ret kompleks struktur.

indre tilslutte sql eksempel 3 tabeller

I dette tilfælde tilføjes yderligere 3 (til hovedbordet), og flere dataudvælgelsesbetingelser er angivet.

Når du bruger operatøren, er Inner Join erHusk at jo mere kompliceret forespørgslen er, desto længere vil den blive implementeret, så det er værd at lede efter måder at hurtigere udføre og løse opgaven.

indre tilslutte sql eksempel 3 tabeller

konklusion

Til sidst vil jeg gerne sige en ting: At arbejde med databaser er ikke det sværeste, der er i programmeringen, så hvis du ønsker det, kan alle mestre viden om at bygge databaser, og i sidste ende få erfaring, vil du kunne arbejde med dem på professionelt niveau.

</ p>
ønsket:
0
Relaterede artikler
Syntaks: hvordan ser dette afsnit ud.
Uendelig for (Java) loop
Sådan komponerer du SQL-forespørgsler - detaljeret
Coalesce sql: beskrivelse, funktioner
MySQL JOIN: beskrivelse, brug eksempel
Skriv konvertering. Round og Trunc funktioner
HAVING SQL: beskrivelse, syntaks, eksempler
Benzinoperatør: Karrieremuligheder
Computer Operator
Populære indlæg
op