Īsa rokasgrāmata par iekšējo savienojumu izmantošanu SQL

Relāciju datu bāzes ir stabils daudziem uzņēmumiem. Tie ir izveidoti ar datorvalodu, ko sauc par strukturēto vaicājumu valodu (SQL). Ja jūs strādājat ar relāciju datu bāzes, jūs laiku pa laikam pārbaudīsit vai apkoposiet datus, kas atrodas vairāk nekā vienā datu bāzes tabulā.

Kas ir SQL JOIN paziņojums?

SQL JOIN priekšraksts ļauj apvienot divas vai vairākas tabulas, parasti balstoties uz saistītu kolonnu, lai dati tiktu apstrādāti tā, it kā tie atrastos vienā tabulā. Pašu tabulas savienojums nemaina.

SQL PIEVIENOTIES ir elastīgs un funkcionāls. Lai gan ir vairāki savienojumu veidi, iekšējais savienojums ir viens no visvieglāk saprotamajiem un izmantotajiem. Apskatiet šos SQL priekšrakstus, kas ilustrē to, kā apvienot trīs dažādu tabulu rezultātus, izmantojot iekšējo savienojumu.

Iekšējās pievienošanās piemērs

Piemēram, ņem tabulas, kurās ir draiveri vienā tabulā un transportlīdzekļu spēles otrajā. Iekšējais savienojums notiek, ja gan transportlīdzeklis, gan vadītājs atrodas vienā pilsētā. Iekšējā savienošana atlasa visas rindas no abām tabulām, kurās ir atbilstība starp atrašanās vietas kolonnām.

instagram viewer

Zemāk esošajā SQL paziņojumā tiek apvienoti dati no tabulām Draiveri un transportlīdzekļi gadījumos, kad vadītājs un transportlīdzeklis atrodas vienā pilsētā:

ATLASIET uzvārdu, vārdu, tagu
NO šoferiem, transportlīdzekļiem
WHERE vadītāji.location = transportlīdzekļi.location

Šis vaicājums rada šādus rezultātus:

uzvārda vārda atzīme

Maiznieks Rolands H122JM
Smythe Michael D824HA
Smythe Michael P091YF
Džeikobs Ābrahams J291QR
Džeikobs Ābrahams L990MT

Tagad paplašiniet šo piemēru, iekļaujot trešo tabulu. Lai iekļautu tikai vadītājus un transportlīdzekļus, kas atrodas vietās, kas ir atvērtas nedēļas nogalē, vaicājumam pievienojiet trešo tabulu, paplašinot JOIN paziņojumu šādi:

Atlasiet uzvārdu, vārdu, tagu, open_weekends
NO šoferiem, transportlīdzekļiem, atrašanās vietām
WHERE vadītāji.location = transportlīdzekļi.location
UN transportlīdzekļi.location = atrašanās vietas.location
AND locations.open_weekends = 'Jā "

Šis vaicājums rada šādus rezultātus:

uzvārda vārda atzīme open_weekends

Maiznieks Rolands H122JM jā
Džeikobss Ābrahams J291QR jā
Džeikobss Ābrahāms L990MY jā

Šis jaudīgais SQL JOIN priekšraksta paplašinājums sarežģīti apvieno datus. Papildus galdu apvienošanai ar iekšējo savienojumu šī tehnika apvieno vairākas tabulas ar cita veida savienojumiem.

Citi savienojumu veidi

Ja tabulām ir atbilstošs ieraksts, iekšējie savienojumi ir pareizais ceļš, bet dažreiz vienā tabulā nav saistītā ieraksta par datiem, uz kuriem savienojums ir veidots, tāpēc vaicājums neizdodas. Šis gadījums prasa ārējais savienojums, kurā iekļauti rezultāti, kas pastāv vienā tabulā, bet pievienotajā tabulā nav atbilstošas ​​atbilstības.

Turklāt atkarībā no apstākļiem varat izvēlēties izmantot citu savienojuma veidu. Šie citi savienojumu veidi ir:

  • Kreisais ārējais savienojums (kreisā pievienošanās): satur katru ierakstu no kreisās tabulas, pat ja labajā tabulā nav atbilstoša ieraksta.
  • Labais ārējais savienojums (labā pievienošanās): atgriež visu atbilstošo informāciju no labās tabulas, pat ja kreisajā tabulā nav atbilstības.
  • Pilnībā pievienojieties: Atlasa visus ierakstus no divām tabulām neatkarīgi no tā, vai tiem ir vai nav atbilstošs pievienošanās nosacījums.