RekenaarsProgrammering

Operateur SQL INNER JOIN: voorbeelde van sintaksis en funksies

Die ontwikkeling van 'n databasis sluit nie net die skepping en vulling van tafels met verskeie inligting, maar ook verder werk met die data. Om korrek uit te voer 'n verskeidenheid van take by die keuse van data uit tabelle en verslagdoening, gebruik die standaard Select design.

Haal data van tafels

As ons die probleem van die keuse van data of die bou van 'n verslag te oorweeg, kan jy die vlak van kompleksiteit van die werking vas te stel. As 'n reël, wanneer die hantering van ernstige (volgens volume) databasisse, wat gevorm word, byvoorbeeld, in aanlyn-winkels of groot maatskappye, data seleksie is nie beperk tot 'n enkele tafel. As 'n reël, kan die monster wees van 'n redelike groot aantal nie net gekoppel tafels, maar ook geneste navrae / sub-navrae, wat die programmeerder maak, afhangende van sy taak. Vir 'n monster van 'n tafel kan gebruik maak van die eenvoudigste struktuur:

Kies * van persoon

waar Persoon - naam van die tafel waaruit jy wil data herwinning maak.

As, egter, sal jy nodig het om inligting uit verskeie tafels kies, kan een van die standaard ontwerpe gebruik word om verskeie tafels aan te sluit.

verbind bykomende tafels metodes

As ons kyk na die gebruik van sulke strukture op die primêre vlak, kan ons die volgende meganismes onderskei aan die vereiste aantal verbind vir die monster tafels, naamlik:

  1. Operateur Inner Sluit.
  2. Links Sluit of is dit die tweede opname metode, Left Outer Sluit.
  3. Kruis Sluit.
  4. Volle Sluit.

Die gebruik van operateurs om tafels in die praktyk aan te sluit, kan jy leer deur die oorweging van die gebruik van die SQL-stelling - Inner Sluit. 'N Voorbeeld van die gebruik daarvan sal as volg wees:

Kies * van persoon

Innerlike sluit Onderverdeling op Su_Person = Pe_ID

Taal SQL en English Inner Sluit operateur kan gebruik word nie net vir die kombinasie van twee of meer tabelle, maar ook om die ander sub-navrae, wat die werk van die databasis administrateurs grootliks fasiliteer verbind, en, as 'n reël, kan aansienlik versnel die implementering van spesifieke, ingewikkelde navraag strukture.

Die kombinasie van data in tabelle reël vir reël

As ons kyk na die verband van 'n groot aantal sub-navrae, en data vergader in 'n enkele tafel reël vir reël, kan jy ook die operateurs Unie en Unie Alle gebruik.

Die gebruik van hierdie strukture sal afhang van die ontwikkelaar om doelwitte en die resultate wat hy wil bereik in die einde stel.

Beskrywing Inner Sluit operateur

In die meeste gevalle, om verskeie tafels kombineer in die SQL taal wat gebruik word deur Inner Sluit operateur. Beskrywing Inner Sluit in SQL is baie maklik om die gemiddelde programmeerder wat net begin om die databasisse te verstaan verstaan. As ons kyk na die beskrywing van die meganisme van die werk van hierdie struktuur, kry ons die volgende prentjie. Die logika operateur as 'n geheel is gebou op die kruising en die moontlikheid van monsterneming net die data wat in elk van die tafels in die soektog.

As ons kyk na hierdie soort van werk in terme van grafiese interpretasie, ons kry SQL Inner Sluit operateur struktuur, 'n voorbeeld van wat bewys kan word deur die volgende skema:

Byvoorbeeld, het ons twee tafels, skematies getoon in die figuur. Hulle het op sy beurt, het 'n verskillende aantal inskrywings. In elk van die tafels het velde wat verwant is. As ons probeer om die werk van die operateur op die basis van die tekening te verduidelik, sal die teruggekeer gevolg van 'n stel van rekords wees van twee tafels, waar die kamers met mekaar verbind velde saamval. Eenvoudig gestel, die soektog lewer net daardie rekords (in tabel nommer twee), wie se data is in die nommer een tafel.

Die sintaksis van die Inner Sluit

Soos voorheen genoem, die operateur Inner Sluit, naamlik sy sintaksis, buitengewoon eenvoudig. Vir die organisasie van verhoudings tussen tafels binne 'n enkele voorbeeld sal voldoende wees om te onthou en gebruik die volgende skematiese diagram van die konstruksie van die operateur, wat voorgeskryf word in 'n enkele lyn van sagteware SQL-kode, naamlik:

  • Innerlike Sluit [Table Naam] op [ 'n belangrike gebied van die tafel waaraan verbind] = [plug sleutel veld van die tafel].

Vir kommunikasie in hierdie stelling is hoofsaaklik gebruik tafels sleutels. As 'n reël, in die groep van tafels wat inligting stoor oor werknemers, voorheen beskryf Persoon Onderverdeling en ten minste een soortgelyke rekord. So, neem 'n nader kyk die operateur SQL Inner Sluit, 'n voorbeeld van wat is 'n bietjie vroeër getoon.

VOORBEELD beskrywing en verbinding met die klank monster tafel

Ons het 'n Persoon tafel, wat inligting oor al die werknemers in die maatskappy stoor. Net daarop dat die meester sleutel van die tafel is 'n veld - Pe_ID. Net op dit en sal 'n bondel te gaan.

Die tweede tafel onderverdeling inligting oor die kantore waar werknemers werk te stoor. Sy het op sy beurt, is verbind via Su_Person veld Persoon tafel. Wat beteken dit? Gebaseer op die data skedule kan gesê word dat in die tabel eenhede vir elke rekord in die tabel "Werknemers" sal inligting oor die departement waarin hulle werk. Dit is om hierdie kommunikasie en sal werk operateur Inner Sluit.

Vir 'n meer intuïtief gebruik van kyk na die operateur SQL Inner Sluit (voorbeelde van die gebruik daarvan vir een of twee tafels). As ons kyk na die voorbeeld van die tafel, dan is al heel eenvoudig:

Kies * van persoon

Innerlike sluit Onderverdeling op Su_Person = Pe_ID

VOORBEELD verbind die twee tafels en subquery

Operateur SQL Inner Sluit, voorbeelde van wat is gebruik om te haal inligting uit verskeie tafels kan gereël word in die bogenoemde wyse, dit is besig met 'n bietjie komplikasie van beginsel. Om die taak van die twee tafels bemoeilik. Byvoorbeeld, ons het Vertrek tafel wat inligting stoor oor al die departemente in elk van die afdelings. In hierdie tabel aangeteken afdeling nommer en werknemer nommer, en moet aangevul word deur die naam van die monster data van elke departement. Wat die toekoms betref, is dit die moeite werd om te sê dat jy twee metodes kan gebruik om hierdie probleem op te los.

Die eerste manier is om aan te sluit die departement tafel te proe. Organiseer versoek in hierdie geval as volg kan wees:

Kies Pe_ID, Pe_Name, Su_Id, Su_Name, Dep_ID, Dep_Name van persoon

Innerlike sluit Onderverdeling op Su_Person = Pe_ID

Innerlike sluit Vertrek Su_Depart = Dep_ID en Pe_Depart = Dep_ID

Die tweede metode van die oplossing van die probleem - is 'n subquery waarin nie al die data sal gekies word uit die departement tafel, maar slegs die nodige gebruik. Dit is in teenstelling met die eerste metode, sal dit die tyd van die versoek te verminder.

Kies Pe_ID, Pe_Name, Su_Id, Su_Name, Dep_ID, Dep_Name van persoon

Innerlike sluit Onderverdeling op Su_Person = Pe_ID

Innerlike aansluit (Kies Dep_ID, Dep_Name, Pe_Depart uit: Gaan weg) as T op Su_Depart = Dep_ID en Pe_Depart = Dep_ID

Dit is opmerklik dat so 'n reëling nie altyd kan die bespoediging van die werk aanvraag. Soms is daar gevalle waar dit nodig is om 'n addisionele monster data gebruik in 'n tydelike tabel (indien die volume is te groot), en dan is dit gekombineer met die grootste monster.

Voorbeeld van die gebruik Inner Sluit operateur om monsters van 'n groot aantal tafels

Die konstruksie behels die gebruik van komplekse navrae vir die monster aansienlike bedrae van data tafels en subqueries verbind. Hierdie vereistes kan voldoen SQL Inner Sluit sintaksis. Voorbeelde van die gebruik van die operateur, in hierdie geval kan ingewikkeld wees nie net monsters van die vele stoor plekke, maar ook met 'n groot aantal geneste subqueries. Vir 'n konkrete voorbeeld, kan jy die data van 'n monster van stelsel tafels te neem (Inner Sluit SQL-stelling). Byvoorbeeld - 3 van die tafel - in hierdie geval sal 'n taamlik ingewikkelde struktuur het.

In hierdie geval verbind (die primêre tafel) en drie verdere bekendgestel verskeie data seleksie voorwaardes.

By die gebruik van die Inner Sluit operateur moet onthou dat die meer komplekse die navraag, hoe langer dit geïmplementeer sal word, sodat jy moet kyk na maniere om vinniger uit te voer en die probleem op te los.

gevolgtrekking

Op die ou end, wil ek sê een ding: werk met databasisse - dit is nie die moeilikste ding in programmering, so as jy wil, sal elke enkele persoon in staat is om kennis te verwerf om 'n databasis te bou, en met verloop van tyd, ondervinding, kry jy om te werk met hulle op 'n professionele vlak .

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 af.delachieve.com. Theme powered by WordPress.