Apvienojiet divas tabulas SQL

Apvienojiet Divas Tabulas Sql



SQL tabulā tabulu apvienošana attiecas uz datu apvienošanas procesu no divām atsevišķām tabulām noteiktā datu bāzē vienā vienībā, pamatojoties uz kopīgu kolonnu vai kritērijiem. Jā, ja tas izklausās pēc galda, tas ir tieši tas.

Tabulu pievienošana vai tabulu sapludināšana ir slavena relāciju datu bāzu funkcija, un tā ir neticami spēcīga. Tas ļauj mums konsolidēt informāciju no vairākiem avotiem, lai izveidotu saskaņotākus un nozīmīgākus datu ieskatus. Tas arī ļauj relāciju datu bāzēm būt ļoti mērogojamām (nav elastīgām), jo mēs varam sadalīt datus mazākos, pārvaldāmos gabalos, uz kuriem varam atsaukties vēlāk.

Šajā apmācībā mēs apskatīsim tabulu savienošanas vai tabulu sapludināšanas pamatus. Apskatīsim reālās pasaules tabulu paraugus, lai nostiprinātu savas zināšanas.







Tabulas paraugs

Pirms iedziļināmies tabulu savienojumu pasaulē, iestatīsim pamata tabulas, kuras izmantosim demonstrācijas nolūkos.



Apsveriet divas tabulas, kurās ir informācija par darbiniekiem un algām, kā parādīts šādos vaicājumu piemēros:



CREATE TABLE darbinieki (

darbinieka_id INT AUTO_INCREMENT PRIMARY KEY,

vārds VARCHAR( piecdesmit ),

uzvārds VARCHAR( piecdesmit ),

nodaļa VARCHAR( piecdesmit )

);

Pēc tam mēs varam ievietot datu paraugus darbinieka tabulā, kā parādīts šādos vaicājumos:





INSERT INTO darbinieku (vārds, uzvārds, nodaļa) VĒRTĪBAS

( 'Alise' , 'Smits' , 'Cilvēku resursi' ),

( 'Bobs' , 'Džonsons' , 'Mārketings' ),

( 'Čārlijs' , 'Vilsons' , 'Finanses' ),

( 'Dāvids' , 'brūns' , 'Pārdošana' ),

( 'Eva' , 'Dāvis' , 'Inženierzinātnes' );

Turpināsim un izveidosim jaunu tabulu algu informācijas glabāšanai šādi:

IZVEIDOT TABULU algas (

salary_id INT AUTO_INCREMENT PRIMARY KEY,

darbinieka_id INT,

alga DECIMĀLĀ( 10 , 2 ),

sākuma_datums DATE,

beigu_datums DATE,

ĀRĒJĀ ATSLĒGA (darbinieka_id) ATSAUKSMES darbinieki (darbinieka_id)

);

Pievienojiet ievietošanas datu paraugu tabulā šādi:



INSERT INTO algas (darbinieka_id, alga, sākuma_datums, beigu_datums) VĒRTĪBAS
( 1 , 60000,00 , “2023-01-01” , “2023-12-31” ),
( 2 , 55000,00 , “2023-01-01” , “2023-12-31” ),
( 3 , 65000,00 , “2023-01-01” , “2023-12-31” ),
( 4 , 58000,00 , “2023-01-01” , “2023-12-31” ),
( 5 , 70000,00 , “2023-01-01” , “2023-12-31” );

Tam vajadzētu nodrošināt mūs ar divām tabulām, kas var palīdzēt mums demonstrēt tabulu savienošanas/apvienošanas jēdzienu SQL.

SQL tabulu sapludināšana/tabulu pievienošana

Izpētīsim dažādus tabulu sapludināšanas veidus, ko varam veikt. Mēs apskatīsim pamatjautājumus, pārejot uz progresīvākiem.

IEKŠĒJĀ PIEVIENOŠANĀS

Pirmais un visizplatītākais tabulu savienojuma veids SQL ir INNER JOIN. INNER JOIN ļauj apvienot rindas no divām tabulām, pamatojoties uz konkrētu nosacījumu. Šis tips pēc tam atgriež tikai tās rindas, kurās ir atbilstība starp tabulām.

Kā piemērus ņemsim iepriekš izveidotās “darbinieku” un “algu” tabulas. Lai veiktu INNER JOIN SQL, mēs izmantojam INNER JOIN klauzulu šādi:

ATLASĪT

e.employee_id,

e.first_name,

e.last_name,

e.nodaļa,

s.alga

NO

darbinieki e

IEKŠĒJĀ JOIN algas s IESL

e.darba ņēmēja_id = s.darbinieka_id;

Dotajā vaicājuma piemērā mēs izmantojam INNER JOIN, lai sapludinātu tabulas “darbinieki” un “algas” kolonnā “employee_id”, kas pastāv abās tabulās. Iegūtajā komplektā ir tikai atbilstošās rindas no abām tabulām.

Izvades piemērs ir šāds:

PA kreisi ĀRĒJĀ PIEVIENOTIES

Mums ir arī LEFT OUTTER JOIN, kas apvieno visas rindas no kreisās tabulas un atbilstošās rindas no labās tabulas. Ja labajā tabulā nav atbilstības, savienojumam tiek izmantota NULL vērtība.

ATLASĪT

e.employee_id,

e.first_name,

e.last_name,

e.nodaļa,

s.alga

NO

darbinieki e

LEFT JOIN algas s

IESL

e.darba ņēmēja_id = s.darbinieka_id;

Šajā piemērā mēs veicam LEFT ĀRĒJO PIEVIENOŠANU, lai apvienotu tabulas “darbinieki” un “algas”. Ir iekļautas visas rindas no tabulas “darbinieki” un tiek pievienotas atbilstošās rindas no tabulas “algas”. Tomēr NULL vērtības ir iekļautas slejā “alga” neatbilstošām rindām.

SQL SAVIENĪBA

Vēl viena tabulu savienošanas metode SQL ir operatora UNION izmantošana. Šis operators ļauj apvienot divu vai vairāku atlasīto paziņojumu rezultātus vienā rezultātu kopā.

Lai savienība būtu piemērojama, katra SELECT priekšraksta kolonnām ir jābūt vienādam datu tipam.

Piemērs ir šāds:

SELECT darbinieka_id , vārds_vārds , uzvārds , nodaļa , NULL AS alga

NO darbiniekiem e

SAVIENĪBA

SELECT darbinieka_id , NULL AS vārds , NULL AS uzvārds , NULL AS nodaļa , alga

NO algām s ;

Šajā gadījumā SAVIENĪBA apvieno tabulas “darbinieki” un “algas”. Pēc tam katrā SELECT priekšrakstā izveidojam NULL kolonnas, lai nodrošinātu, ka abās tabulās ir līdzīgs kolonnu skaits.

SAVIENĪBAS ir tehniski izplatītas, taču tās var būt noderīgas, jo īpaši, ja nepieciešams apvienot tabulas ar dažādām struktūrām.

Secinājums

Šajā apmācībā mēs izpētījām pamatprincipus divu tabulu apvienošanai/apvienošanai vienā rezultātu kopā. Ir labi paturēt prātā, ka šajā ziņojumā ir apspriesti daudz uzlaboti pievienošanās veidi.