PostgreSQL spajanja: Unutarnji, Vanjski, Lijevi, Desni, Prirodni s primjerima

Sadržaj:

Anonim

Što su PostgreSQL pridruživanja?

PostgreSQL PRIDRUŽENJA koriste se za dohvaćanje podataka iz više tablica. S JOIN-ovima je moguće kombinirati naredbe SELECT i JOIN u jednu izjavu. Uvjetu se pridružuje JOIN i vraćaju se svi retci koji ispunjavaju uvjete.

Vrijednosti iz različitih tablica kombiniraju se na temelju uobičajenih stupaca. Uobičajeni stupac uglavnom je primarni ključ prve tablice i strani ključ druge tablice.

U ovom vodiču za PostgreSQL naučit ćete:

  • Što su PostgreSQL pridruživanja?
  • Vrste pridruživanja
  • Unutarnji spojevi
    • Theta Pridružite se
    • EQUI Pridružite se
    • Prirodno pridruživanje
  • Vanjski pridruži
    • LIJEVO VANJSKO PRIDRUŽITE
    • DESNO VANJSKO PRIDRUŽITE
    • Potpuno vanjsko pridruživanje
  • Korištenje pgAdmin
  • Unutarnji spojevi
    • Theta Pridružite se
    • EQUI Pridružite se
    • Prirodno pridruživanje
    • UNUTARNJE PRIDRUŽIVANJE (jednostavno pridruživanje)
  • Vanjski pridruži
    • LIJEVO VANJSKO PRIDRUŽITE
    • DESNO VANJSKO PRIDRUŽITE
    • Potpuno vanjsko pridruživanje

Vrste pridruživanja

Postoje dvije vrste JOIN u PostgreSQL:

  • Unutarnji spojevi
  • Vanjsko pridruživanje

Unutarnji spojevi

Postoje 3 vrste unutarnjih spajanja:

  • Theta se pridruži
  • Prirodno pridruživanje
  • EQUI pridruži se

Theta Pridružite se

Theta spajanje omogućuje spajanje dviju tablica na temelju stanja koje predstavlja theta. Theta pridruživanja mogu raditi sa svim operatorima usporedbe. U većini slučajeva, theta spajanje naziva se unutarnjim spajanjem.

Theta pridruživanje je najosnovnija vrsta PRIDRUŽIVANJA. Vratit će sve retke iz tablica u kojima je zadovoljen uvjet PRIDRUŽIVANJA.

Sintaksa:

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

Razmotrite sljedeće tablice Demo baze podataka:

Knjiga:

Cijena:

Želimo vidjeti naziv svake knjige i odgovarajuću cijenu. Možemo pokrenuti sljedeću naredbu:

SELECT Book.name, Price.priceFROM BookINNER JOIN PriceON Book.id = Price.id;

Ovo će vratiti sljedeće:

Samo su 3 reda zadovoljila uvjet spajanja.

EQUI Pridružite se

Pridruživanje EQUI pruža nam način spajanja dviju tablica na temelju odnosa primarni ključ / inozemni ključ. Na primjer:

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

Ovo će vratiti sljedeće:

Zapisi su vraćeni iz obje tablice na temelju uobičajenih stupaca, odnosno stupca id.

Prirodno pridruživanje

Ova vrsta spajanja pruža nam još jedan način pisanja EQUI pridruživanja. Naš prethodni primjer možemo poboljšati dodavanjem ključne riječi NATURAL kao što je prikazano u nastavku:

SELECT *FROM BookNATURAL JOIN Price;

Ovo će vratiti sljedeće:

Vraćen je samo jedan stupac id. NATURAL JOIN je uspio primijetiti da je stupac id uobičajen u dvije tablice. Vraćen je samo jedan.

Vanjski pridruži

Postoje tri vrste vanjskih JOIN-ova u PostgreSQL-u:

  • Lijevo vanjsko pridruživanje.
  • Desno vanjsko pridruživanje.
  • Potpuno vanjsko pridruživanje

LIJEVO VANJSKO PRIDRUŽITE

LIJEVO VANJSKO PRIDRUŽIVANJE vratit će sve retke u tablici s lijeve strane i samo retke u desnoj bočnoj tablici gdje su zadovoljeni uvjeti pridruživanja.

Sintaksa:

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

Moramo vidjeti naziv svake knjige i odgovarajuću cijenu. Možemo pokrenuti sljedeću naredbu:

SELECT Book.name, Price.priceFROM BookLEFT JOIN PriceON Book.id = Price.id;

Ovo vraća sljedeće:

Vraćena su sva 4 retka u tablici Knjiga. Samo su 3 retka iz tablice cijena ispunila uvjet pridruživanja. Stoga su vraćeni. Zadnja knjiga nema odgovarajuću vrijednost cijene.

DESNO VANJSKO PRIDRUŽITE

DESNO VANJSKO PRIDRUŽIVANJE vraća sve retke u tablici s desne strane i retke u tablici s lijeve strane gdje su zadovoljeni uvjeti spajanja.

Sintaksa:

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

Na primjer:

SELECT Book.name, Price.priceFROM BookRIGHT JOIN PriceON Book.id = Price.id;

Ovo vraća sljedeće:

Vraćeni su svi retci u tablici cijena. Vraćeni su samo retci u tablici Knjiga koji su zadovoljili uvjet pridruživanja. 3 rd red nema vrijednosti za ime, jer je nije pronađena.

Potpuno vanjsko pridruživanje

Ova vrsta JOIN vratit će sve retke u tablici s lijeve strane i sve retke u tablici s desne strane s nulama gdje uvjet pridruživanja nije zadovoljen.

Sintaksa:

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

Na primjer:

SELECT Book.name, Price.priceFROM BookFULL OUTER JOIN PriceON Book.id = Price.id;

Ovo vraća sljedeće:

Vraćeni su svi retci iz svih tablica, s nulama gdje nije pronađeno podudaranje.

Korištenje pgAdmin

Gore navedeni zadaci mogu se izvršiti u pgAdminu na sljedeći način:

Unutarnji spojevi

Theta Pridružite se

Korak 1) Prijavite se na svoj pgAdmin račun.

Korak 2)

  1. Na navigacijskoj traci s lijeve strane kliknite Baze podataka.
  2. Pritisnite Demo.

Korak 3) Upišite upit u uređivač upita:

SELECT Book.name, Price.priceFROM BookINNER JOIN PriceON Book.id = Price.id;

Korak 4) Kliknite gumb Izvrši.

Trebao bi vratiti sljedeće:

EQUI Pridružite se

Korak 1) Prijavite se na svoj pgAdmin račun.

Korak 2)

  1. Na navigacijskoj traci s lijeve strane kliknite Baze podataka.
  2. Pritisnite Demo.

Korak 3) Upišite upit u uređivač upita:

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

Korak 4) Kliknite gumb Izvrši.

Trebao bi vratiti sljedeće:

Prirodno pridruživanje

Korak 1) Prijavite se na svoj pgAdmin račun.

Korak 2)

  1. Na navigacijskoj traci s lijeve strane kliknite Baze podataka.
  2. Pritisnite Demo.

Korak 3) Upišite upit u uređivač upita:

SELECT *FROM BookNATURAL JOIN Price;

Korak 4) Kliknite gumb Izvrši.

Trebao bi vratiti sljedeće:

UNUTARNJE PRIDRUŽIVANJE (jednostavno pridruživanje)

Korak 1) Prijavite se na svoj pgAdmin račun.

Korak 2)

  1. Na navigacijskoj traci s lijeve strane kliknite Baze podataka.
  2. Pritisnite Demo.

Korak 3) Upišite upit u uređivač upita:

SELECT Book.name, Price.priceFROM BookINNER JOIN PriceON Book.id = Price.id;

Korak 4) Kliknite gumb Izvrši.

Trebao bi vratiti sljedeće:

Vanjski pridruži

LIJEVO VANJSKO PRIDRUŽITE

Korak 1) Prijavite se na svoj pgAdmin račun.

Korak 2)

  1. Na navigacijskoj traci s lijeve strane kliknite Baze podataka.
  2. Pritisnite Demo.

Korak 3) Upišite upit u uređivač upita:

SELECT Book.name, Price.priceFROM BookLEFT JOIN PriceON Book.id = Price.id;

Korak 4) Kliknite gumb Izvrši.

Trebao bi vratiti sljedeće:

DESNO VANJSKO PRIDRUŽITE

Korak 1) Prijavite se na svoj pgAdmin račun.

Korak 2)

  1. Na navigacijskoj traci s lijeve strane kliknite Baze podataka.
  2. Pritisnite Demo.

Korak 3) Upišite upit u uređivač upita:

SELECT Book.name, Price.priceFROM BookRIGHT JOIN PriceON Book.id = Price.id;

Korak 4) Kliknite gumb Izvrši.

Trebao bi vratiti sljedeće:

Potpuno vanjsko pridruživanje

Korak 1) Prijavite se na svoj pgAdmin račun.

Korak 2)

  1. Na navigacijskoj traci s lijeve strane kliknite Baze podataka.
  2. Pritisnite Demo.

Korak 3) Upišite upit u uređivač upita:

SELECT Book.name, Price.priceFROM BookFULL OUTER JOIN PriceON Book.id = Price.id;

Korak 4) Kliknite gumb Izvrši.

Trebao bi vratiti sljedeće:

Sažetak:

  • U PostgreSQL-u koristimo JOIN-ove kada moramo dohvatiti vrijednosti iz više tablica.
  • UNUTARNJE PRIDRUŽIVANJE najosnovnija je vrsta PRIDRUŽIVANJA. Vraća sve zapise kod kojih je zadovoljen navedeni uvjet PRIDRUŽIVANJA.
  • LIJEVO VANJSKO PRIDRUŽIVANJE vraća sve retke u lijevoj tablici i samo retke u drugoj tablici u kojima je zadovoljen uvjet pridruživanja.
  • DESNO VANJSKO PRIDRUŽIVANJE vraća sve retke u desnoj tablici i samo retke u drugoj tablici u kojima je zadovoljen uvjet pridruživanja.
  • Ova vrsta JOIN vraća sve retke u lijevoj tablici i sve retke u desnoj tablici s nulama gdje uvjet pridruživanja nije zadovoljen.

Preuzmite bazu podataka korištenu u ovom vodiču