PostgreSQL Vrste spajanja s primjerima: unutarnji, vanjski, lijevi, desni
U čemu su spojevi PostgreSQL?
PostgreSQL Pridružuje koriste se za dohvaćanje podataka iz više od jedne tablice. Pomoću spojeva moguće je kombinirati naredbe SELECT i JOIN u jednu naredbu. Uvjet JOIN dodaje se naredbi i vraćaju se svi redovi koji ispunjavaju uvjete. Vrijednosti iz različitih tablica kombiniraju se na temelju zajedničkih stupaca. Zajednički stupac uglavnom je primarni ključ u prvoj tablici i strani ključ u drugoj tablici.
PostgreSQL Vrste spajanja
Postoje dvije vrste spajanja PostgreSQL:
- Unutarnji spojevi
- Vanjski spojevi
PostgreSQL Unutarnje pridruživanje
Postoje 3 vrste unutarnjih spojeva PostgreSQL:
- Theta spoj
- Prirodno spajanje
- Pridružite se EQUI
Theta Pridružite se
Theta spajanje omogućuje spajanje dviju tablica na temelju uvjeta koji predstavlja theta. Theta spojevi mogu raditi sa svim operatorima usporedbe. U većini slučajeva, theta spajanje se naziva unutarnjim spajanjem.
Theta spajanje je najosnovniji tip JOIN-a. Vratit će sve retke iz tablica u kojima je JOIN uvjet zadovoljen.
Sintaksa:
SELECT columns FROM table-1 INNER JOIN table-2 ON table-1.column = table-2.column;
Razmotrite sljedeće tablice Demo baze podataka:
Rezervirati:
Cijena:
Želimo vidjeti naziv svake knjige i odgovarajuću cijenu. Možemo pokrenuti sljedeću naredbu:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
Ovo će vratiti sljedeće:
Samo su 3 retka zadovoljila uvjet spajanja.
EQUI Pridružite se
EQUI spajanje pruža nam način spajanja dviju tablica na temelju odnosa primarni ključ/strani ključ. Na primjer:
SELECT * FROM Book JOIN Price ON Book.id = Price.id;
Ovo će vratiti sljedeće:
Zapisi su vraćeni iz obje tablice na temelju zajedničkih stupaca, odnosno stupca id.
Prirodni spoj
Ova vrsta pridruživanja nam daje još jedan način pisanja EQUI pridruživanja. Možemo poboljšati naš prethodni primjer dodavanjem ključne riječi NATURAL kao što je prikazano u nastavku:
SELECT * FROM Book NATURAL JOIN Price;
Ovo će vratiti sljedeće:
Vraćen je samo jedan ID stupac. NATURAL JOIN je mogao primijetiti da je id stupac zajednički u dvije tablice. Samo je jedan vraćen.
Postgres vanjski spoj
Postoje 3 vrste vanjskih spojeva PostgreSQL:
- Lijevi vanjski spoj
- Desni vanjski spoj
- Potpuno vanjsko pridruživanje
Postgres lijevo vanjsko spajanje
LEFT OUTER JOIN će vratiti sve retke u tablici na lijevoj strani i samo retke u tablici s desne strane gdje je uvjet spajanja zadovoljen.
Sintaksa:
SELECT columns FROM table-1 LEFT OUTER JOIN table-2 ON 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.price FROM Book LEFT JOIN Price ON Book.id = Price.id;
Ovo vraća sljedeće:
Sva 4 retka u tablici Knjiga su vraćena. Samo 3 retka iz tablice cijena ispunjavaju uvjet spajanja. Stoga su vraćeni. Posljednja knjiga nema odgovarajuću cjenovnu vrijednost.
Postgres desni vanjski spoj
RIGHT OUTER JOIN vraća sve retke u tablici s desne strane i retke u tablici s lijeve strane gdje je uvjet spajanja zadovoljen.
Sintaksa:
SELECT columns FROM table-1 RIGHT OUTER JOIN table-2 ON table-1.column = table-2.column;
Na primjer:
SELECT Book.name, Price.price FROM Book RIGHT JOIN Price ON Book.id = Price.id;
Ovo vraća sljedeće:
Svi retci u tablici cijena su vraćeni. Vraćeni su samo retci u tablici knjiga koji su zadovoljili uvjet spajanja. 3rd redak nema vrijednost za ime jer nije pronađeno podudaranje.
Potpuno vanjsko pridruživanje PostgreSQL
Ova vrsta JOIN će vratiti sve retke u tablici na lijevoj strani i sve retke u tablici na desnoj strani s nulama gdje uvjet spajanja nije zadovoljen.
Sintaksa:
SELECT columns FROM table-1 FULL OUTER JOIN table-2 ON table-1.column = table-2.column;
Na primjer:
SELECT Book.name, Price.price FROM Book FULL OUTER JOIN Price ON Book.id = Price.id;
Ovo vraća sljedeće:
Svi retci iz svih tablica su vraćeni, s nulama gdje nije pronađeno podudaranje.
Koristeći pgAdmin
Gore navedeni zadaci mogu se izvršiti u pgAdmin-u na sljedeći način:
pgAdmin Unutarnje pridruživanje
Kako koristiti Theta Pridružite se PostgreSQL koristeći pgAdmin
U nastavku su navedeni koraci za korištenje Theta Join-a u Postgresu pomoću pgAdmin-a:
Korak 1) Prijavite se na svoj pgAdmin račun
Otvorite pgAdmin i prijavite se koristeći svoje vjerodajnice
Korak 2) Stvorite demo bazu podataka
- Na navigacijskoj traci s lijeve strane kliknite Databases.
- Pritisnite Demo.
Korak 3) Upišite upit
Unesite upit u nastavku u uređivač upita:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
Korak 4) Izvršite upit
Pritisnite gumb Izvrši
Trebao bi vratiti sljedeće:
EQUI Pridružite se
Korak 1) Prijavite se na svoj pgAdmin račun.
Korak 2)
- Na navigacijskoj traci s lijeve strane kliknite Databases.
- Pritisnite Demo.
Korak 3) Unesite upit u uređivač upita:
SELECT * FROM Book JOIN Price ON Book.id = Price.id;
Korak 4) Pritisnite gumb Izvrši.
Trebao bi vratiti sljedeće:
Prirodni spoj
Korak 1) Prijavite se na svoj pgAdmin račun.
Korak 2)
- Na navigacijskoj traci s lijeve strane kliknite Databases.
- Pritisnite Demo.
Korak 3) Unesite upit u uređivač upita:
SELECT * FROM Book NATURAL JOIN Price;
Korak 4) Pritisnite gumb Izvrši.
Trebao bi vratiti sljedeće:
pgAdmin Jednostavno unutarnje spajanje
Korak 1) Prijavite se na svoj pgAdmin račun.
Korak 2)
- Na navigacijskoj traci s lijeve strane kliknite Databases.
- Pritisnite Demo.
Korak 3) Unesite upit u uređivač upita:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
Korak 4) Pritisnite gumb Izvrši.
Trebao bi vratiti sljedeće:
pgAdmin vanjsko spajanje
Lijevi vanjski spoj
Korak 1) Prijavite se na svoj pgAdmin račun.
Korak 2)
- Na navigacijskoj traci s lijeve strane kliknite Databases.
- Pritisnite Demo.
Korak 3) Unesite upit u uređivač upita:
SELECT Book.name, Price.price FROM Book LEFT JOIN Price ON Book.id = Price.id;
Korak 4) Pritisnite gumb Izvrši.
Trebao bi vratiti sljedeće:
Desni vanjski spoj
Korak 1) Prijavite se na svoj pgAdmin račun.
Korak 2)
- Na navigacijskoj traci s lijeve strane kliknite Databases.
- Pritisnite Demo.
Korak 3) Unesite upit u uređivač upita:
SELECT Book.name, Price.price FROM Book RIGHT JOIN Price ON Book.id = Price.id;
Korak 4) Pritisnite gumb Izvrši.
Trebao bi vratiti sljedeće:
Potpuno vanjsko pridruživanje
Korak 1) Prijavite se na svoj pgAdmin račun.
Korak 2)
- Na navigacijskoj traci s lijeve strane kliknite Databases.
- Pritisnite Demo.
Korak 3) Unesite upit u uređivač upita:
SELECT Book.name, Price.price FROM Book FULL OUTER JOIN Price ON Book.id = Price.id;
Korak 4) Pritisnite gumb Izvrši.
Trebao bi vratiti sljedeće:
Rezime
- In PostgreSQL, koristimo JOIN-ove kada trebamo dohvatiti vrijednosti iz više od jedne tablice.
- INNER JOIN je najosnovniji tip JOIN-a. Vraća sve zapise u kojima je zadovoljen uvjet JOIN.
- LEFT OUTER JOIN vraća sve retke u lijevoj tablici i samo retke u drugoj tablici gdje je uvjet spajanja zadovoljen.
- RIGHT OUTER JOIN vraća sve retke u desnoj tablici i samo retke u drugoj tablici gdje je uvjet spajanja zadovoljen.
- Ova vrsta JOIN vraća sve retke u lijevoj tablici i sve retke u desnoj tablici s nulama gdje uvjet spajanja nije zadovoljen.
Preuzmite bazu podataka korištenu u ovom vodiču