CyfrifiaduronRhaglennu

Gweithredwr SQL INNER YMUNO: Enghreifftiau cystrawen a nodweddion

Datblygu unrhyw gronfa ddata yn cynnwys nid yn unig y creu a llenwi o dablau â gwybodaeth amrywiol, ond hefyd gwaith pellach gyda'r data. I berfformio yn gywir amrywiaeth o dasgau ar y dewis data o dablau a chyflwyno adroddiadau, defnyddiwch y Select dyluniad safonol.

Nôl data o dablau

Os byddwn yn ystyried y broblem o ddewis y data neu o adroddiad adeiladu, gallwch benderfynu ar lefel y cymhlethdod y llawdriniaeth. Fel rheol, wrth ymdrin â difrifol (yn ôl cyfaint) cronfeydd data, sy'n cael eu ffurfio, er enghraifft, mewn siopau ar-lein neu gwmnïau mawr, dewis data nid yn gyfyngedig i fwrdd sengl. Fel rheol, mae'n bosibl y sampl fod o nifer gweddol fawr o dablau, nid yn unig yn gysylltiedig, ond nythu hefyd ymholiadau / is-gwestiynau, sy'n gwneud y rhaglennydd, yn dibynnu ar ei dasg. Ar gyfer y gall sampl o un tabl yn defnyddio'r strwythur symlaf:

Dewiswch * o Person

lle mae Person - enw'r tabl o ble ydych am wneud adfer data.

Os, fodd bynnag, bydd angen i chi ddewis data o dablau lluosog, gall un o'r cynlluniau safonol yn cael ei ddefnyddio i ymuno â byrddau lluosog.

cysylltu Dulliau tablau ychwanegol

Os byddwn yn ystyried y defnydd o strwythurau o'r fath ar y lefel gynradd, gallwn wahaniaethu rhwng mecanweithiau canlynol i gysylltu'r nifer sydd ei angen ar gyfer y tablau sampl, sef:

  1. Gweithredwr Mewnol Ymunwch.
  2. Chwith Ymunwch neu, dyma'r ail ddull o gofnodi, Chwith Allanol Ymunwch.
  3. Cross Ymunwch.
  4. Llawn Ymunwch.

Defnyddio gweithredwyr i ymuno tablau yn ymarferol, gallwch ddysgu drwy ystyried y defnydd o'r datganiad SQL - Inner Ymunwch. Enghraifft o ei ddefnydd fel a ganlyn:

Dewiswch * o Person

Inner ymuno Isrannu ar Su_Person = Pe_ID

SQL Iaith a Ymunwch â Inner Ymunwch Gellir gweithredwr yn cael ei ddefnyddio, nid yn unig ar gyfer cyfuno dau neu fwy o dablau, ond hefyd i gysylltu'r is-ymholiadau eraill, sy'n hwyluso gwaith gweinyddwyr cronfa ddata fawr, ac, fel rheol, gall gyflymu yn sylweddol o strwythurau ymholiad penodol, cymhleth ar waith.

Cyfuno data mewn tablau fesul llinell

Os byddwn yn ystyried y cysylltiad o nifer fawr o is-gwestiynau, a data ymgynnull mewn llinell tabl sengl trwy linell, gallwch hefyd ddefnyddio'r Undeb gweithredwyr a'r Undeb Gyfan.

Bydd y defnydd o strwythurau hyn yn dibynnu ar y datblygwr i osod amcanion a'r canlyniadau y mae am ei gyflawni yn y diwedd.

Disgrifiad Mewnol Ymunwch gweithredwr

Yn y rhan fwyaf o achosion, i gyfuno tablau lluosog yn yr iaith SQL a ddefnyddir gan Inner Ymunwch gweithredwr. Disgrifiad Inner Ymunwch yn SQL yn eithaf hawdd i'w ddeall y rhaglennydd gyfartaledd sy'n yn dechrau deall y cronfeydd data. Os byddwn yn ystyried y disgrifiad o'r mecanwaith o waith y strwythur hwn, rydym yn cael y darlun canlynol. Mae'r gweithredwr rhesymeg yn ei gyfanrwydd yn cael ei hadeiladu ar y groesfan a'r posibilrwydd o samplu dim ond y data sydd ym mhob un o'r tablau a gynhwysir yn yr ymholiad.

Os edrychwn ar y math hwn o waith o ran dehongli graffig, rydym yn cael SQL Inner Ymunwch strwythur gweithredwr, yn enghraifft gellir cael ei ddangos gan y cynllun canlynol:

Er enghraifft, mae gennym ddau tablau, a ddangosir schematically yn y ffigur. Maent yn, yn ei dro, yn cael nifer gwahanol o geisiadau. Ym mhob un o'r tablau yn cael meysydd sy'n gysylltiedig. Os byddwn yn ceisio esbonio gwaith y gweithredwr ar sail y llun, bydd y canlyniad yn dychwelyd set o gofnodion o ddwy tablau, lle mae'r ystafelloedd yn gaeau cydgysylltiedig yn cyd-daro. Yn syml, mae'r ymholiad yn dychwelyd dim ond y cofnodion hynny (o ran nifer nhabl dau), y caiff eu data yn y tabl rhif un.

Mae cystrawen y Inner Ymuno

Fel y soniwyd eisoes, mae'r gweithredwr Inner Ymunwch, sef, ei chystrawen, yn anarferol syml. Ar gyfer trefnu perthnasau rhwng tablau yn sampl unigol yn ddigonol i gofio a defnyddio'r diagram sgematig canlynol o'r y gweithredwr, a ragnodir mewn un llinell o feddalwedd SQL-god, sef adeiladu:

  • Inner Ymunwch [Tabl Enw] ar [faes allweddol y tabl y mae cysylltu] = [maes allweddol plygadwy o'r tabl].

Ar gyfer cyfathrebu yn y datganiad hwn yw tablau allweddi a ddefnyddir yn bennaf. Fel rheol, yn y grŵp o dablau sy'n storio gwybodaeth am weithwyr, a ddisgrifiwyd yn flaenorol Person Isrannu ac o leiaf un cofnod tebyg. Felly, yn cymryd yn nes edrych gweithredwr SQL Mewnol Ymuno, enghraifft o hyn wedi cael ei ddangos ychydig yn gynharach.

Disgrifiad ENGHRAIFFT a chysylltiad at y bwrdd sampl sain

Mae gennym fwrdd Person, sy'n storio gwybodaeth am yr holl weithwyr sy'n gweithio yn y cwmni. Dim ond yn nodi bod y meistr allweddol y tabl yn faes - Pe_ID. Dim ond arno a bydd yn mynd bwndel.

Bydd yr ail Isrannu tabl storio gwybodaeth am swyddfeydd y mae gweithwyr yn gweithio. Hi, yn ei dro, yn cael ei gysylltu drwy dabl Person maes Su_Person. Beth mae hyn yn ei olygu? Gall Yn seiliedig ar y sgema data fod yn dweud bod yn yr unedau tabl ar gyfer pob cofnod yn y tabl "Gweithwyr" yn cael gwybodaeth am yr adran y maent yn gweithio. Mae ar gyfer cyfathrebu hwn a bydd yn gweithio gweithredwr Inner Ymunwch.

Am ddefnydd mwy greddfol o ystyried y gweithredydd SQL Mewnol Ymuno (enghreifftiau o'r defnydd ar gyfer un neu ddau o dablau). Os byddwn yn ystyried yr enghraifft o yr un bwrdd, yna i gyd yn eithaf syml:

Dewiswch * o Person

Inner ymuno Isrannu ar Su_Person = Pe_ID

ENGHRAIFFT cysylltu y ddau dabl a subquery

Gweithredwr SQL Inner Ymunwch, enghreifftiau ohonynt yn defnyddio i adfer y gall data o dablau lluosog yn cael ei drefnu yn y modd uchod, yn gweithio ar ychydig yn gymhlethdod o egwyddor. I gymhlethu tasg y ddau dabl. Er enghraifft, mae gennym tabl Gadael sy'n storio gwybodaeth am yr holl adrannau ym mhob un o'r rhanbarthau. Yn y tabl a gofnodwyd rhif rhannu a rhif gweithiwr, a rhaid eu hategu gan yr enw data sampl o bob adran. Wrth edrych ymlaen, mae'n werth dweud y gallwch ei defnyddio dau ddull i ddatrys y broblem hon.

Y ffordd gyntaf yw cysylltu y bwrdd adran i gael blas. Trefnu cais yn yr achos hwn fod yn fel a ganlyn:

Dewiswch Pe_ID, Pe_Name, Su_Id, Su_Name, Dep_ID, Dep_Name o Person

Inner ymuno Isrannu ar Su_Person = Pe_ID

Inner ymuno Ymadael ar Su_Depart = Dep_ID a Pe_Depart = Dep_ID

Yr ail ddull o ddatrys y broblem - yw defnyddio subquery lle na fydd yr holl ddata yn cael eu dewis o'r tabl adran, ond dim ond y bo angen. Mae hyn yn wahanol i'r dull cyntaf, bydd yn lleihau'r amser y cais.

Dewiswch Pe_ID, Pe_Name, Su_Id, Su_Name, Dep_ID, Dep_Name o Person

Inner ymuno Isrannu ar Su_Person = Pe_ID

Inner ymuno (Dewiswch Dep_ID, Dep_Name, Pe_Depart o Ymadael) fel T ar Su_Depart = Dep_ID a Pe_Depart = Dep_ID

Mae'n werth nodi na all trefniant o'r fath bob amser yn cyflymu'r y cais gwaith. Weithiau mae yna achosion pan fydd angen i ddefnyddio data sampl ychwanegol mewn tabl dros dro (os yw'r cyfaint yn rhy fawr), ac yna cafodd ei gyfuno â'r prif sampl.

Enghraifft o ddefnydd Inner Ymunwch gweithredydd i samplau o nifer fawr o dablau

Mae'r gwaith adeiladu yn cynnwys defnyddio ymholiadau cymhleth ar gyfer y symiau sylweddol sampl o dablau data a subqueries gydgysylltiedig. Gall y gofynion hyn yn bodloni SQL Mewnol Ymuno cystrawen. Mae enghreifftiau o'r defnydd y gweithredwr, yn yr achos hwn fod yn gymhleth, nid yn unig samplau o'r nifer o leoedd storio, ond hefyd gyda nifer fawr o subqueries nythu. Er enghraifft concrid, gallwch gymryd data o sampl o dablau system (Inner Ymunwch datganiad SQL). Enghraifft - 3 o'r tabl - bydd yn yr achos hwn gael strwythur braidd yn gymhleth.

Yn yr achos hwn gysylltu (y tabl cynradd) a thri nifer o amodau dethol data a gyflwynwyd ymhellach.

Wrth ddefnyddio'r Inner Ymunwch dylai gweithredwr gofio po fwyaf cymhleth yr ymholiad, yr hiraf mae'n bydd yn cael ei roi ar waith, felly dylech edrych am ffyrdd i berfformio a datrys y broblem yn gyflymach.

casgliad

Yn y pen draw, hoffwn ddweud un peth: yn gweithio gyda chronfeydd data - nid yw'n y peth mwyaf anodd mewn rhaglennu, felly os ydych am y bydd pob person unigol yn gallu i gaffael gwybodaeth i adeiladu cronfa ddata, a thros amser, ennill profiad, byddwch yn cael i weithio gyda nhw ar lefel broffesiynol .

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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