Mis on PostgreSQL liitumised?
PostgreSQL JOIN-e kasutatakse andmete hankimiseks rohkem kui ühest tabelist. JOIN-ide abil on meil võimalik SELECT ja JOIN laused ühendada üheks avalduseks. Avaldusele lisatakse tingimus JOIN ja kõik tingimustele vastavad read tagastatakse.
Erinevate tabelite väärtused kombineeritakse ühiste veergude põhjal. Ühine veerg on enamasti esimese tabeli esmane võti ja teise tabeli võõras võti.
Selles PostgreSQL-i õpetuses saate teada:
- Mis on PostgreSQL liitumised?
- Liitumiste tüübid
- Sisemine liitumine
- Theta Liitu
- EQUI Liitu
- Loomulik liitumine
- Välised liitumised
- VASEM VÄLIS LIITUMINE
- PAREM VÄLIS LIITUMINE
- Täielik väline liitumine
- PgAdmini kasutamine
- Sisemine liitumine
- Theta Liitu
- EQUI Liitu
- Loomulik liitumine
- INNER JOIN (lihtne liitumine)
- Välised liitumised
- VASEM VÄLIS LIITUMINE
- PAREM VÄLIS LIITUMINE
- Täielik väline liitumine
Liitumiste tüübid
PostgreSQL-is on kaks JOIN-tüüpi:
- Sisemine liitumine
- Väline liitumine
Sisemine liitumine
Sisemisi ühendusi on 3 tüüpi:
- Theta liituda
- Loomulik liitumine
- EQUI liituvad
Theta Liitu
Teetaühendus võimaldab liituda kahe tabeliga tingimusel, mida teeta esindab. Theta liitumised saavad töötada kõigi võrdlusoperaatoritega. Enamasti nimetatakse teetaühendust sisemiseks liitumiseks.
Teetaühendus on põhiline JOIN-i tüüp. See tagastab kõik tabelite read, kus JOIN-tingimus on täidetud.
Süntaks:
SELECT columnsFROM table-1INNER JOIN table-2ON table-1.column = table-2.column;
Mõelge järgmistele Demo andmebaasi tabelitele:
Raamat:
Hind:
Soovime näha iga raamatu nime ja vastavat Hinda. Saame käivitada järgmise käsu:
SELECT Book.name, Price.priceFROM BookINNER JOIN PriceON Book.id = Price.id;
See annab järgmise tulemuse:
Ainult 3 rida rahuldas liitumistingimust.
EQUI Liitu
EQUI liitumine annab meile võimaluse ühendada kaks tabelit, mis põhinevad primaarvõtme / võti võtmel. Näiteks:
SELECT *FROM BookJOIN Price ON Book.id = Price.id;
See annab järgmise tulemuse:
Mõlemast tabelist on kirjed tagastatud ühiste veergude, st id-veeru põhjal.
Loomulik liitumine
Seda tüüpi liitumine annab meile veel ühe võimaluse kirjutada EQUI liitumine. Saame oma eelmist näidet paremaks muuta, kui lisada märksõna NATURAL, nagu allpool näidatud:
SELECT *FROM BookNATURAL JOIN Price;
See annab järgmise tulemuse:
Tagastatud on ainult üks ID-veerg. NATURAL JOIN suutis märkida, et id-veerg on kahes tabelis levinud. Ainult üks tagastati.
Välised liitumised
PostgreSQL-is on kolme tüüpi väliseid JOIN-sid:
- Vasakpoolne välimine liitumine.
- Õige välimine liitumine.
- Täielik väline liitumine
VASEM VÄLIS LIITUMINE
LEFT OUTER JOIN tagastab kõik tabeli read vasakul küljel ja ainult need parempoolse tabeli read, kus liitumistingimus on täidetud.
Süntaks:
SELECT columnsFROM table-1LEFT OUTER JOIN table-2ON table-1.column = table-2.column;
Peame nägema iga raamatu nime ja vastavat Hind. Saame käivitada järgmise käsu:
SELECT Book.name, Price.priceFROM BookLEFT JOIN PriceON Book.id = Price.id;
See tagastab järgmise:
Kõik raamatu tabeli 4 rida on tagastatud. Ainult 3 rida tabelist Hind vastas liitumistingimusele. Seetõttu saadeti nad tagasi. Viimasel raamatul puudub vastav hinnaväärtus.
PAREM VÄLIS LIITUMINE
PAREM OUTER JOIN tagastab parempoolsel küljel kõik tabeli read ja vasakpoolsed tabeli read, kus liitumistingimus on täidetud.
Süntaks:
SELECT columnsFROM table-1RIGHT OUTER JOIN table-2ON table-1.column = table-2.column;
Näiteks:
SELECT Book.name, Price.priceFROM BookRIGHT JOIN PriceON Book.id = Price.id;
See tagastab järgmise:
Kõik tabeli Hind read on tagastatud. Tagastati ainult raamatu tabeli read, mis vastasid liitumistingimusele. 3 rd rida ei ole raha nimi kuna ükski leiti vaste.
Täielik väline liitumine
Seda tüüpi JOIN tagastab kõik tabeli read vasakul küljel ja kõik tabeli parempoolsed read nullidega, kui liitumistingimus pole täidetud.
Süntaks:
SELECT columnsFROM table-1FULL OUTER JOIN table-2ON table-1.column = table-2.column;
Näiteks:
SELECT Book.name, Price.priceFROM BookFULL OUTER JOIN PriceON Book.id = Price.id;
See tagastab järgmise:
Kõikide tabelite kõik read on tagastatud koos nullidega, kus vastet ei leitud.
PgAdmini kasutamine
Eespool nimetatud ülesandeid saab pgAdminis täita järgmiselt:
Sisemine liitumine
Theta Liitu
Samm 1) Logige sisse oma pgAdmini kontole.
2. samm)
- Vasakul navigeerimisribal klõpsake käsku Andmebaasid.
- Klõpsake valikul Demo.
Samm 3) Sisestage päring päringiredaktorisse:
SELECT Book.name, Price.priceFROM BookINNER JOIN PriceON Book.id = Price.id;
Samm 4) Klõpsake nuppu Execute.
See peaks tagastama järgmise:
EQUI Liitu
Samm 1) Logige sisse oma pgAdmini kontole.
2. samm)
- Vasakul navigeerimisribal klõpsake käsku Andmebaasid.
- Klõpsake valikul Demo.
Samm 3) Sisestage päring päringiredaktorisse:
SELECT *FROM BookJOIN Price ON Book.id = Price.id;
Samm 4) Klõpsake nuppu Execute.
See peaks tagastama järgmise:
Loomulik liitumine
Samm 1) Logige sisse oma pgAdmini kontole.
2. samm)
- Vasakul navigeerimisribal klõpsake käsku Andmebaasid.
- Klõpsake valikul Demo.
Samm 3) Sisestage päring päringiredaktorisse:
SELECT *FROM BookNATURAL JOIN Price;
Samm 4) Klõpsake nuppu Execute.
See peaks tagastama järgmise:
INNER JOIN (lihtne liitumine)
Samm 1) Logige sisse oma pgAdmini kontole.
2. samm)
- Vasakul navigeerimisribal klõpsake käsku Andmebaasid.
- Klõpsake valikul Demo.
Samm 3) Sisestage päring päringiredaktorisse:
SELECT Book.name, Price.priceFROM BookINNER JOIN PriceON Book.id = Price.id;
Samm 4) Klõpsake nuppu Execute.
See peaks tagastama järgmise:
Välised liitumised
VASEM VÄLIS LIITUMINE
Samm 1) Logige sisse oma pgAdmini kontole.
2. samm)
- Vasakul navigeerimisribal klõpsake käsku Andmebaasid.
- Klõpsake valikul Demo.
Samm 3) Sisestage päring päringiredaktorisse:
SELECT Book.name, Price.priceFROM BookLEFT JOIN PriceON Book.id = Price.id;
Samm 4) Klõpsake nuppu Execute.
See peaks tagastama järgmise:
PAREM VÄLIS LIITUMINE
Samm 1) Logige sisse oma pgAdmini kontole.
2. samm)
- Vasakul navigeerimisribal klõpsake käsku Andmebaasid.
- Klõpsake valikul Demo.
Samm 3) Sisestage päring päringiredaktorisse:
SELECT Book.name, Price.priceFROM BookRIGHT JOIN PriceON Book.id = Price.id;
Samm 4) Klõpsake nuppu Execute.
See peaks tagastama järgmise:
Täielik väline liitumine
Samm 1) Logige sisse oma pgAdmini kontole.
2. samm)
- Vasakul navigeerimisribal klõpsake käsku Andmebaasid.
- Klõpsake valikul Demo.
Samm 3) Sisestage päring päringiredaktorisse:
SELECT Book.name, Price.priceFROM BookFULL OUTER JOIN PriceON Book.id = Price.id;
Samm 4) Klõpsake nuppu Execute.
See peaks tagastama järgmise:
Kokkuvõte:
- PostgreSQL-is kasutame JOIN-e, kui peame väärtusi hankima rohkem kui ühest tabelist.
- INNER JOIN on kõige tavalisem JOIN. See tagastab kõik kirjed, kus määratud JOIN-tingimus oli täidetud.
- LEFT OUTER JOIN tagastab kõik vasakpoolse tabeli read ja ainult teise tabeli read, kus liitumistingimus on täidetud.
- PAREM OUTER JOIN tagastab parempoolse tabeli kõik read ja teises tabelis ainult need read, kus liitumistingimus on täidetud.
- Seda tüüpi JOIN tagastab kõik vasakpoolse tabeli read ja kõik parempoolse tabeli read nullidega, kui liitumistingimus pole täidetud.
Laadige alla selles õpetuses kasutatud andmebaas