KompjûtersProgramming

SQL INNER JOIN deklaraasje: foarbylden, syntaksis en funksjes

De ûntwikkeling fan alle databanken betsjuttet net allinich de skepping en filling fan tabellen mei in ferskaat oan ynformaasje, mar ek fierder wurkje mei de gegevens. Foar de goede útfier fan ferskate taken foar it selektearjen fan gegevens út tabellen en berjochten wurde generearre, de standert Selektearre konstrukt wurdt brûkt.

Daten geane út tabellen

As jo de opdracht fan it selektearjen fan gegevens of it konstruearjen fan in bepaalde rapport beskôgje, kinne jo it nivo fan kompleksiteit fan dizze operaasje bepale. As regel, by it wurkje mei serieus (op it gebied fan ynformaasje) databases, dy't foarme binne bygelyks yn online winkels of grutte bedriuwen, wurdt it sampling fan gegevens net beheind ta ien tabel. Typysk kinne de problemen wêze fan in frijwat grut tal net allinich ferbûne tabellen, mar ek de nestige queries / subqueries dy't de programmer sels makket, ôfhinklik fan de oanbelangjende taak. Foar sampling fan in tafel kinne jo it ienfâldige ûntwerp brûke:

Selektearje * fan persoan

Wannear't Person is de namme fan 'e tafel wêryn de gegevens te selektearjen.

As it nedich is dat jo gegevens fan ferskate tabellen selektearje, kinne jo ien fan 'e standert ûntwerpen brûke om ferskate tabellen te kombinearjen.

Wizen om ekstra tabellen te ferbinen

As wy it gebrûk fan sokke struktueren op it begjinpunt beskôgje, dan kinne wy de neikommende meganismen ûnderskiede foar it ferbinen fan it nedige tal tabellen foar de foarbyld, nammentlik:

  1. Operator Inner Join.
  2. Lofts tafoegje of, dit is de twadde manier fan opnimmen, Left Outer Join.
  3. Cross Join.
  4. Full Join.

It gebrûk fan tafoegings fan tabellen yn 'e praktyk kin leard wurde troch te behanneljen fan it gebrûk fan' e operateur SQL - binnen te kommen. In foarbyld fan har gebrûk sil dit folgje:

Selektearje * fan persoan

Ynterne tafoeging subdivision op Su_Person = Pe_ID

De SQL-taal en de mei-inoar Enter-join-operator kinne brûkt wurde om allinich twa of mear tabellen te kombinearjen, mar ek om oare subqueries te ferbinen, dy't it wurk fan database-bestjoerders tige fasilitearje en de útfier fan guon struktureare fragen faak beheare kinne.

Kombineare gegevens yn tabellen rige troch rige

As jo beskôge wurde om in grut tal subqueries te ferbinen en gegevens te sammeljen yn in inkele tabelzeil nei rige, kinne jo ek de Union en Union All operators brûke.

De tapassing fan dizze konstruksjes sil ôfhinklik wêze fan 'e opdracht foar de ûntwikkelders en it resultaat dat er yn it ein bringe wol.

Beskriuwing fan operator Inner Join

Yn 'e measte gefallen brûke jo de ynterne joinoperator om meardere tabellen yn SQL te kommen. De beskriuwing fan Inner Join yn SQL is hiel ienfâldich foar in trochsneed programmer om te begripen, wat allinich begjint om de databases te begripen. As wy de beskriuwing fan it meganisme foar operaasje fan dizze bou beskôgje, krije wy it folgjende foto. De logika fan 'e operateur as gehiel is basearre op' e mooglikheid om allinich de gegevens dy't krekt yn elk fan 'e tafels dy't yn' e query opnommen binne ynsette en probearjen.

As wy dit wurk beskôgje fanút it perspektyf fan grafyske ynterpretaasje, krije wy de struktuer fan SQL Inner Join, in foarbyld dêrfan kinne jo sjen mei de folgjende regeling:

Bygelyks, wy hawwe twa tabellen, it diagram wêrfan yn 'e sifers werjûn wurdt. Se, op 'e nij, hawwe in oar oantal rekken. Yn elk fan 'e tafels binne der fjilden dy't elkoar keppele wurde. As jo besykje it wurk fan 'e operator op basis fan' e sifers te ferklearjen, dan sil it weromgeande resultaat yn 'e foarm fan in set fan recordings fan twa tabellen wêze, wêrby't de tal fan relatearre fjilden fermindere. Yn ienfâldige put, dan sil de query allinich de rekken (fan tabel nûmer twa) weromkomme, de gegevens dy't yn it tabel nûmer ien binne.

Syntaksje fan binnen-jointoperator

As earder neamd wurdt, is de ynterne ferbiningoperator, nammentlik syn syntaksis, tige ienfâldich. Om keppelings te organisearjen tusken tabellen binnen ien samling, dan sil it genôch wêze om it folgjende haadregel te meitsjen foar it oanbieden fan in operator, dy't yn ien rigine fan it programma SQL-koade skreaun is, nammentlik:

  • Binnen tafoegje [tabelnamme] op [kaai fjild fan 'e tafel dêr't wy ferbine] = [kaai fan de ferbûne tabel].

Foar kommunikaasje yn dizze operator binne de haadtaken fan 'e tabellen brûkt. As regel, yn 'e groep fan tabellen dy't ynformaasje oer meiwurkers bewarje, hawwe de earder beskreaun persoan en subdivision op syn minst ien ferlykbere rekord. Dus litte wy in tichterby sjen nei de deklaraasje fan 'e SQL-ynterne gearkomst, in foarbyld wêrfan in bytsje earder sjen litten waard.

Foarbyld en beskriuwing fan ferbining mei in single tabel seleksje

Wy hawwe in persoantabel dy't ynformaasje opslaan oer alle wurknimmers dy't wurkje yn it bedriuw. Tink derom dat de wichtichste kaai fan dizze tabel is it fjild - Pe_ID. Krekt op it en dêr sil in bűn wêze.

De twadde tabel Subdivision sil ynformaasje hawwe op 'e ôfdielingen dêr't wurknimmers wurkje. It, op 'e doel, is ferbûn mei help fan it fjild Su_Person mei de persoantafel. Wat betsjut dit? Op grûn fan it gegevens skema kinne jo sizze dat yn 'e iente tabel foar elke yngong yn' e Tabel Employees ynformaasje oer de ôfdieling wêryn't se wurkje. It is foar dizze oansluting dat de binnen-kommunistoperator wurket.

Foar in better begryplike brûk meitsje, beskôgje de SQL-ynterne joinoperator (foarbylden fan har gebrûk foar ien en twa tabellen). As wy in foarbyld foar ien tafel beskôgje, dan is alles ienfâldich:

Selektearje * fan persoan

Ynterne tafoeging subdivision op Su_Person = Pe_ID

In foarbyld fan it ferbinen fan twa tabellen en in subquery

De SQL-binnen-kommersje-operator, dy't brûkt wurde kin om data út ferskate tabellen te selektearjen op 'e hegende manier, wurket op in wat komplisearre prinsipe. Foar twa tabellen sille wy it probleem komplisearje. Sa hawwe wy in Depart tafel, dy't ynformaasje oer alle ôfdielingen yn elke ôfdieling bewarret. Yn dizze tabel wurde it ôfdielingsnûmer en meiwurkersnûmer opnommen en jo moatte de gegevensmuster oanmeitsje mei de namme fan elke ôfdieling. Omtinken te praten, is it wurdich te merken dat twa metoaden brûkt wurde kinne om dit probleem op te lossen.

De earste manier is de ôfdielingstafel te ferbinen oan 'e echte samling. Yn dit gefal kinne jo de query op dizze manier organisearje:

Selektearje Pe_ID, Pe_Name, Su_Id, Su_Name, Dep_ID, Dep_Name fan Person

Ynterne tafoeging subdivision op Su_Person = Pe_ID

Ynterne gearkomste fuortsmite op Su_Depart = Dep_ID en Pe_Depart = Dep_ID

De twadde metoade om it probleem te pleatsjen is in subquery te brûken, wêryn net alle gegevens, mar allinich de nedige, sille wurde keazen út 'e ôfdielingstafel. Dit, yn tsjinstelling ta de earste metoade, sil de query-tiid fergrutsje.

Selektearje Pe_ID, Pe_Name, Su_Id, Su_Name, Dep_ID, Dep_Name fan Person

Ynterne tafoeging subdivision op Su_Person = Pe_ID

Ynterne gearkomste (Selektearje Dep_ID, Dep_Name, Pe_Depart fanôfgean) as T op Su_Depart = Dep_ID en Pe_Depart = Dep_ID

It is te witten dat dit ûntwerp de opdracht net altyd ferdwine kin. Somtiden binne der gefallen dat it nedich is om in ekstra sampling fan gegevens te brûken yn 'e tydlike tabel (as har volume is te grut), en dan is it kombinearre mei de haadprobe.

Foarbyld fan gebrûk fan 'e binnen-joinoperator foar seleksjes út in grut tal tabellen

Oanlizzende kompleksproblemen befetsje it brûken fan in wichtige tal tafels en subqueries dy't ferbân hâlde mei elkoar om data te berikken. Dizze easken kinne de SQL-binnen-syntaksis oanfreegje. Foarbylden fan it gebrûk fan 'e operateur yn dit gefal kinne net komplisearre wurde net allinich troch samples fan in soad data opslach lokaasjes, mar ek út in grut tal nestige subqueries. Foar in spesifike foarbyld kinne jo in sampling fan gegevens fan systeemtabellen nimme (de SQL-oanfieder fan binnen te krijen). In foarbyld - 3 tabellen - yn dit gefal sil in earder komplekse struktuer hawwe.

Yn dit gefal wurde trije mear tafoege (nei de haadtafel) en ferskate betingsten foar gegevenswikseling wurde ynfierd.

By it brûken fan de operator meiwurkers, tink derom dat de kompleetere de query, de langere wurdt ymplementearre, dus is it wurdich om soenen nei wizen om flugger útfiere te kinnen en te foltôgjen.

Fermelding

Oan 'e ein wolle ik ien ding sizze: wurkje mei databestannen is net it minste ding dat yn programmearring is, dus as jo wolle dat elkenien de kennis fan gebou databases masterje kin en eventueel it erfgoed wurde, kinne jo mei-inoar by wurkje .

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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