PostgreSQL Liitostyypit esimerkein: sisempi, ulompi, vasen, oikea

Mitä ovat liittymiset PostgreSQL?

PostgreSQL Liitosten käytetään tietojen hakemiseen useammasta kuin yhdestä taulukosta. Joinsin avulla voimme yhdistää SELECT- ja JOIN-käskyt yhdeksi lauseeksi. Käskyyn lisätään JOIN-ehto, ja kaikki ehdot täyttävät rivit palautetaan. Eri taulukoiden arvot yhdistetään yhteisten sarakkeiden perusteella. Yhteinen sarake on enimmäkseen ensisijainen avain ensimmäisessä taulukossa ja vierasavain toisessa taulukossa.

PostgreSQL Liittymistyypit

Liittymiä on kahdenlaisia PostgreSQL:

  • Sisäiset liittymät
  • Ulkopuoliset liittymät

PostgreSQL Sisäinen liittyminen

Sisäisiä liitoksia on 3 tyyppiä PostgreSQL:

  • Theta liittyy
  • Luonnollinen liitos
  • EQUI liittyä

Theta Liity

Theta-liitoksen avulla voidaan yhdistää kaksi taulukkoa sen ehdon perusteella, jota theta edustaa. Theta-liitokset voivat toimia kaikkien vertailuoperaattoreiden kanssa. Useimmissa tapauksissa theta-liitosta kutsutaan sisäliitokseksi.

Theta-liitos on JOIN:n yksinkertaisin tyyppi. Se palauttaa kaikki rivit taulukoista, joissa JOIN-ehto täyttyy.

Syntaksi:

SELECT columns
FROM table-1 
INNER JOIN table-2
ON table-1.column = table-2.column;

Harkitse seuraavia Demo-tietokannan taulukoita:

Kirja:

PostgreSQL Theta Liity

Hinta:

PostgreSQL Theta Liity

Haluamme nähdä jokaisen kirjan nimen ja vastaavan hinnan. Voimme suorittaa seuraavan komennon:

SELECT Book.name, Price.price 
FROM Book 
INNER JOIN Price 
ON Book.id = Price.id;   

Tämä palauttaa seuraavat tiedot:

PostgreSQL Theta Liity

Vain 3 riviä täytti liitosehdon.

EQUI Liity

EQUI-liitos tarjoaa meille tavan yhdistää kaksi taulukkoa ensisijaisen avaimen/vieraan avaimen suhteen perusteella. Esimerkiksi:

SELECT *
FROM Book 
JOIN Price ON Book.id = Price.id;

Tämä palauttaa seuraavat tiedot:

PostgreSQL EQUI Liity

Molemmista taulukoista on palautettu tietueita yhteisten sarakkeiden eli id-sarakkeen perusteella.

Luonnollinen liittyminen

Tämäntyyppinen liitos tarjoaa meille toisen tavan kirjoittaa EQUI-liitos. Voimme parantaa edellistä esimerkkiämme lisäämällä LUONNON avainsanan alla olevan kuvan mukaisesti:

SELECT *
FROM Book
NATURAL JOIN Price;

Tämä palauttaa seuraavat tiedot:

PostgreSQL Luonnollinen liittyminen

Vain yksi id-sarake on palautettu. NATURAL JOIN havaitsi, että id-sarake on yhteinen kahdessa taulukossa. Vain yksi palautettiin.

Postgres Outer Join

Ulkoliitoksia on 3 tyyppiä PostgreSQL:

  • Vasen ulompi liittymä
  • Oikea ulompi liitos
  • Täysi ulkoinen liittyminen

Postgresin vasen ulkoliitos

LEFT OUTTER JOIN palauttaa kaikki taulukon rivit vasemmalla puolella ja vain ne oikeanpuoleisen sivutaulukon rivit, joissa liitosehto on täytetty.

Syntaksi:

SELECT columns
FROM table-1
LEFT OUTER JOIN table-2
ON table-1.column = table-2.column;

Meidän on nähtävä jokaisen kirjan nimi ja vastaava hinta. Voimme suorittaa seuraavan komennon:

SELECT Book.name, Price.price 
FROM Book   
LEFT JOIN Price 
ON Book.id = Price.id;   

Tämä palauttaa seuraavan:

Postgresin vasen ulkoliitos

Kaikki Kirja-taulukon 4 riviä on palautettu. Vain 3 riviä Hintataulukosta täytti liitosehdon. Siksi heidät palautettiin. Viimeisellä kirjalla ei ole vastaavaa hinta-arvoa.

Postgres oikea ulkoliitos

RIGHT OUTER JOIN palauttaa kaikki taulukon rivit oikealla puolella ja rivit taulukon vasemmalla puolella, joissa liitosehto on täytetty.

Syntaksi:

SELECT columns
FROM table-1
RIGHT OUTER JOIN table-2
ON table-1.column = table-2.column;

Esimerkiksi:

SELECT Book.name, Price.price 
FROM Book
RIGHT JOIN Price 
ON Book.id = Price.id;

Tämä palauttaa seuraavan:

Postgres oikea ulkoliitos

Kaikki hintataulukon rivit on palautettu. Vain kirjataulukon rivit, jotka täyttivät liitosehdon, palautettiin. 3rd rivillä ei ole arvoa nimelle, koska vastaavuutta ei löytynyt.

Täysi ulkoinen liittyminen PostgreSQL

Tämän tyyppinen JOIN palauttaa kaikki taulukon rivit vasemmalla puolella ja kaikki taulukon rivit oikealla puolella nollapisteineen, joissa liitosehto ei täyty.

Syntaksi:

SELECT columns
FROM table-1
FULL OUTER JOIN table-2
ON table-1.column = table-2.column;

Esimerkiksi:

SELECT Book.name, Price.price 
FROM Book
FULL OUTER JOIN Price 
ON Book.id = Price.id;

Tämä palauttaa seuraavan:

Postgres Full Outer Join

Kaikki rivit kaikista taulukoista on palautettu, ja niissä on nollia, joille ei löytynyt vastaavuutta.

pgAdminin avulla

Yllä olevat tehtävät voidaan suorittaa pgAdminissa seuraavasti:

pgAdminin sisäinen liittyminen

Thetan käyttäminen Liity mukaan PostgreSQL pgAdminin avulla

Alla on vaiheet Theta Joinin käyttämiseksi Postgresissa pgAdminin avulla:

Vaihe 1) Kirjaudu pgAdmin-tilillesi

Avaa pgAdmin ja kirjaudu sisään tunnuksillasi

Vaihe 2) Luo esittelytietokanta

  1. Valitse vasemmalla olevasta navigointipalkista Tietokannat.
  2. Napsauta Demo.

pgAdminin sisäinen liittyminen

Vaihe 3) Kirjoita kysely

Kirjoita alla oleva kysely kyselyeditoriin:

SELECT Book.name, Price.price 
FROM Book 
INNER JOIN Price 
ON Book.id = Price.id;   

Vaihe 4) Suorita kysely

Napsauta Suorita-painiketta

pgAdminin sisäinen liittyminen

Sen pitäisi palauttaa seuraavat tiedot:

pgAdminin sisäinen liittyminen

EQUI Liity

Vaihe 1) Kirjaudu sisään pgAdmin-tilillesi.

Vaihe 2)

  1. Valitse vasemmalla olevasta navigointipalkista Tietokannat.
  2. Napsauta Demo.

pgAdmin EQUI Liity

Vaihe 3) Kirjoita kysely kyselyeditoriin:

SELECT *
FROM Book 
JOIN Price ON Book.id = Price.id;

Vaihe 4) Napsauta Suorita-painiketta.

pgAdmin EQUI Liity

Sen pitäisi palauttaa seuraavat tiedot:

pgAdmin EQUI Liity

Luonnollinen liittyminen

Vaihe 1) Kirjaudu sisään pgAdmin-tilillesi.

Vaihe 2)

  1. Valitse vasemmalla olevasta navigointipalkista Tietokannat.
  2. Napsauta Demo.

pgAdmin Luonnollinen Liity

Vaihe 3) Kirjoita kysely kyselyeditoriin:

SELECT *
FROM Book 
NATURAL JOIN Price;

Vaihe 4) Napsauta Suorita-painiketta.

pgAdmin Luonnollinen Liity

Sen pitäisi palauttaa seuraavat tiedot:

pgAdmin Luonnollinen Liity

pgAdmin yksinkertainen sisäinen liittyminen

Vaihe 1) Kirjaudu sisään pgAdmin-tilillesi.

Vaihe 2)

  1. Valitse vasemmalla olevasta navigointipalkista Tietokannat.
  2. Napsauta Demo.

pgAdmin yksinkertainen sisäinen liittyminen

Vaihe 3) Kirjoita kysely kyselyeditoriin:

SELECT Book.name, Price.price 
FROM Book 
INNER JOIN Price 
ON Book.id = Price.id;   

Vaihe 4) Napsauta Suorita-painiketta.

pgAdmin yksinkertainen sisäinen liittyminen

Sen pitäisi palauttaa seuraavat tiedot:

pgAdmin yksinkertainen sisäinen liittyminen

pgAdmin Outer Join

Vasen ulompi liittymä

Vaihe 1) Kirjaudu sisään pgAdmin-tilillesi.

Vaihe 2)

  1. Valitse vasemmalla olevasta navigointipalkista Tietokannat.
  2. Napsauta Demo.

pgAdmin Left Outer Join

Vaihe 3) Kirjoita kysely kyselyeditoriin:

SELECT Book.name, Price.price 
FROM Book   
LEFT JOIN Price 
ON Book.id = Price.id;   

Vaihe 4) Napsauta Suorita-painiketta.

pgAdmin Left Outer Join

Sen pitäisi palauttaa seuraavat tiedot:

pgAdmin Left Outer Join

Oikea ulompi liitos

Vaihe 1) Kirjaudu sisään pgAdmin-tilillesi.

Vaihe 2)

  1. Valitse vasemmalla olevasta navigointipalkista Tietokannat.
  2. Napsauta Demo.

pgAdmin Oikea ulkoliitos

Vaihe 3) Kirjoita kysely kyselyeditoriin:

SELECT Book.name, Price.price 
FROM Book
RIGHT JOIN Price 
ON Book.id = Price.id;

Vaihe 4) Napsauta Suorita-painiketta.

pgAdmin Oikea ulkoliitos

Sen pitäisi palauttaa seuraavat tiedot:

pgAdmin Oikea ulkoliitos

Täysi ulkoinen liittyminen

Vaihe 1) Kirjaudu sisään pgAdmin-tilillesi.

Vaihe 2)

  1. Valitse vasemmalla olevasta navigointipalkista Tietokannat.
  2. Napsauta Demo.

pgAdmin Full Outer Join

Vaihe 3) Kirjoita kysely kyselyeditoriin:

SELECT Book.name, Price.price 
FROM Book
FULL OUTER JOIN Price 
ON Book.id = Price.id;

Vaihe 4) Napsauta Suorita-painiketta.

pgAdmin Full Outer Join

Sen pitäisi palauttaa seuraavat tiedot:

pgAdmin Full Outer Join

Yhteenveto

  • In PostgreSQL, käytämme JOIN-koodeja, kun meidän on noudettava arvoja useammasta kuin yhdestä taulukosta.
  • SISÄLIITTYMINEN on JOIN:n perustyyppi. Se palauttaa kaikki tietueet, joissa määritetty JOIN-ehto täyttyi.
  • LEFT OUTTER JOIN palauttaa kaikki vasemmanpuoleisen taulukon rivit ja vain ne toisen taulukon rivit, joissa liitosehto on täytetty.
  • RIGHT OUTER JOIN palauttaa kaikki oikeanpuoleisen taulukon rivit ja vain ne toisen taulukon rivit, joissa liitosehto on täytetty.
  • Tämän tyyppinen JOIN palauttaa kaikki vasemmanpuoleisen taulukon rivit ja kaikki oikeanpuoleisen taulukon rivit nolla-arvoineen, joissa liitosehto ei täyty.

Lataa tässä opetusohjelmassa käytetty tietokanta