Ühendage kaks tabelit SQL-is

Uhendage Kaks Tabelit Sql Is



SQL-is viitab tabelite ühendamine protsessile, mille käigus kombineeritakse antud andmebaasis olevad kahest erinevast tabelist olevad andmed ühise veeru või kriteeriumide alusel üheks üksuseks. Jah, kui see kõlab nagu laud, siis täpselt nii see on.

Tabelite ühendamine või tabeli ühendamine on relatsiooniandmebaaside tuntud funktsioon ja see on uskumatult võimas. See võimaldab meil koondada mitmest allikast pärinevat teavet, et luua ühtsemaid ja sisukamaid andmeid. Samuti võimaldab see relatsiooniandmebaase olla väga skaleeritav (mitte paindlik), kuna saame andmed jagada väiksemateks hallatavateks tükkideks, millele saame hiljem viidata.

Selles õpetuses käsitleme tabelite ühendamise või tabeli ühendamise põhialuseid. Vaatame oma teadmiste tugevdamiseks reaalse maailma tabelinäidiseid.







Näidistabel

Enne kui läheme tabeliühenduste maailma, seadistame põhitabelid, mida kasutame demonstratsiooni eesmärgil.



Mõelge kahele tabelile, mis sisaldavad töötajate ja palgateavet, nagu on näidatud järgmistes näidispäringutes:



CREATE TABLE töötajad (

töötaja_id INT AUTO_INCREMENT PRIMARY KEY,

eesnimi VARCHAR( viiskümmend ),

perekonnanimi VARCHAR( viiskümmend ),

osakond VARCHAR( viiskümmend )

);

Seejärel saame sisestada näidisandmed töötaja tabelisse, nagu on näidatud järgmistes päringutes:





INSERT INTO töötajad (eesnimi, perekonnanimi, osakond) VÄÄRTUSED

( 'Alice' , 'Smith' , 'Inimressursid' ),

( 'Bob' , 'Johnson' , 'Turundus' ),

( 'Charlie' , 'Wilson' , 'Finants' ),

( 'David' , 'pruun' , 'Müük' ),

( 'Eva' , 'Davis' , 'Insener' );

Jätkame ja loome palgainfo salvestamiseks uue tabeli järgmiselt:

LOO TABEL palgad (

salary_id INT AUTO_INCREMENT PRIMARY KEY,

töötaja_id INT,

palk DECIMAAL( 10 , 2 ),

start_date DATE,

end_date DATE,

VÄLISVÕTI (töötaja_id) VIITED töötajaid (töötaja_id)

);

Lisage näidisandmed tabelisse järgmiselt:



INSERT INTO palgad (töötaja_id, palk, alguskuupäev, lõpp_kuupäev) VÄÄRTUSED
( 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' );

See peaks andma meile kaks tabelit, mis aitavad meil demonstreerida SQL-is tabelite ühendamise/ühendamise kontseptsiooni.

SQL-tabelite ühendamine/tabelite ühendamine

Uurime erinevaid tabelite liitmise tüüpe, mida saame teha. Põhimõttelisi käsitleme siis, kui liigume edasi arenenumate poole.

SISEMINE LIITUMINE

Esimene ja kõige levinum tabeliühenduse tüüp SQL-is on INNER JOIN. INNER JOIN võimaldab meil kombineerida kahe tabeli ridu konkreetse tingimuse alusel. See tüüp tagastab seejärel ainult need read, kus tabelite vahel on vaste.

Võtame näiteks varem koostatud “töötajate” ja “palkade” tabelid. SQL-is INNER JOIN-i sooritamiseks kasutame klauslit INNER JOIN järgmiselt:

VALI

e.töötaja_id,

e.first_name,

e.perenimi_nimi,

e. osakond,

s.palk

FROM

töötajad e

SISEMINE LIITU palgad s PEAL

e.töötaja_id = s.töötaja_id;

Antud näidispäringus kasutame SISEMIST LIITUMIST, et ühendada tabelid 'töötajad' ja 'palgad' veerus 'töötaja_id', mis on olemas mõlemas tabelis. Saadud komplekt sisaldab ainult mõlemast tabelist vastavaid ridu.

Näidisväljund on järgmine:

VASAKU VÄLIMISE LIITUMINE

Meil on ka LEFT OUTTER JOIN, mis ühendab kõik vasakpoolse tabeli read ja parema tabeli vastavad read. Kui õiges tabelis pole vastet, kasutab liitmine väärtust NULL.

VALI

e.töötaja_id,

e.first_name,

e.perekonnanimi,

e. osakond,

s.palk

FROM

töötajad e

LEFT JOIN palgad s

PEAL

e.töötaja_id = s.töötaja_id;

Selles näites teostame tabelite 'töötajad' ja 'palgad' liitmiseks VASAKU VÄLIMISE LIITUMISE. Kaasatud on kõik 'töötajate' tabelis olevad read ja lisatud on vastavad read tabelist 'palgad'. NULL-väärtused sisalduvad mittevastavate ridade veerus 'palk'.

SQL UNION

Teine meetod tabelite ühendamiseks SQL-is on operaatori UNION kasutamine. See operaator võimaldab meil ühendada kahe või enama valitud lause tulemused üheks tulemuste komplektiks.

Iga SELECT-lause veergudel peab olema sama andmetüüp, et liit oleks kohaldatav.

Näide on järgmine:

VALI töötaja_id , eesnimi , perekonnanimi , osakond , NULL AS palk

töötajatelt e

LIIT

SELECT töötaja_id , NULL AS eesnimi , NULL AS perekonnanimi , NULL AS osakond , palk

palkadest s ;

Sel juhul liidab LIIT 'töötajate' ja 'palkade' tabelid. Seejärel loome igas SELECT-lauses NULL-veerud tagamaks, et mõlemas tabelis on sarnane veergude arv.

LIIDUD on tehniliselt levinud, kuid need võivad olla kasulikud eriti siis, kui on vaja liita erineva struktuuriga tabeleid.

Järeldus

Selles õpetuses uurisime kahe tabeli üheks tulemuste komplektiks ühendamise/ühendamise põhialuseid. Hea on meeles pidada, et selles postituses käsitletakse palju täpsemaid liitumisi.