PostgreSQL Tipuri de alăturare cu exemple: interior, exterior, stânga, dreapta
În ce sunt Join-urile PostgreSQL?
PostgreSQL Se alătură sunt utilizate pentru preluarea datelor din mai multe tabele. Cu Joins, este posibil să combinăm instrucțiunile SELECT și JOIN într-o singură instrucțiune. O condiție JOIN este adăugată la instrucțiune și toate rândurile care îndeplinesc condițiile sunt returnate. Valorile din diferite tabele sunt combinate pe baza coloanelor comune. Coloana comună este în mare parte o cheie primară în primul tabel și o cheie externă a celui de-al doilea tabel.
PostgreSQL Tipuri de alăturare
Există două tipuri de Joinuri PostgreSQL:
- Imbinari interioare
- Imbinari exterioare
PostgreSQL Alăturare interioară
Există 3 tipuri de uniuni interioare PostgreSQL:
- Theta se alătură
- Unire naturală
- EQUI se alătură
Theta Join
O îmbinare theta permite să se alăture două tabele în funcție de condiția reprezentată de teta. Combinațiile Theta pot funcționa cu toți operatorii de comparație. În cele mai multe cazuri, îmbinarea theta este denumită îmbinare interioară.
Uniunea theta este cel mai elementar tip de JOIN. Va returna toate rândurile din tabelele în care condiția JOIN este îndeplinită.
Sintaxă:
SELECT columns FROM table-1 INNER JOIN table-2 ON table-1.column = table-2.column;
Luați în considerare următoarele tabele din baza de date Demo:
Carte:
Preț:
Vrem să vedem numele fiecărei cărți și prețul corespunzător. Putem rula următoarea comandă:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
Aceasta va returna următoarele:
Doar 3 rânduri au îndeplinit condiția de alăturare.
Alăturați-vă EQUI
Unirea EQUI ne oferă o modalitate de a uni două tabele bazate pe relația cheie primară/cheie străină. De exemplu:
SELECT * FROM Book JOIN Price ON Book.id = Price.id;
Aceasta va returna următoarele:
Înregistrările au fost returnate din ambele tabele pe baza coloanelor comune, adică coloana id.
Asociere naturală
Acest tip de alăturare ne oferă o altă modalitate de a scrie o alăturare EQUI. Putem îmbunătăți exemplul nostru anterior adăugând cuvântul cheie NATURAL, așa cum se arată mai jos:
SELECT * FROM Book NATURAL JOIN Price;
Aceasta va returna următoarele:
Doar o coloană ID a fost returnată. NATURAL JOIN a putut observa că coloana id este comună în cele două tabele. Doar unul a fost returnat.
Postgres Outer Join
Există 3 tipuri de îmbinări exterioare PostgreSQL:
- Stânga la exterior
- Alăturați-vă la dreapta
- Alăturare completă exterioară
Postgres Left Outer Join
LEFT OUTER JOIN va returna toate rândurile din tabel din partea stângă și numai rândurile din tabelul din dreapta unde condiția de îmbinare a fost îndeplinită.
Sintaxă:
SELECT columns FROM table-1 LEFT OUTER JOIN table-2 ON table-1.column = table-2.column;
Trebuie să vedem numele fiecărei cărți și prețul corespunzător. Putem rula următoarea comandă:
SELECT Book.name, Price.price FROM Book LEFT JOIN Price ON Book.id = Price.id;
Aceasta returnează următoarele:
Toate cele 4 rânduri din tabelul Book au fost returnate. Doar 3 rânduri din tabelul Preț au îndeplinit condiția de alăturare. Prin urmare, au fost returnați. Ultima carte nu are o valoare de preț corespunzătoare.
Postgres Right Outer Join
RIGHT OUTER JOIN returnează toate rândurile din tabel din partea dreaptă și rândurile din tabel din partea stângă unde condiția de îmbinare a fost îndeplinită.
Sintaxă:
SELECT columns FROM table-1 RIGHT OUTER JOIN table-2 ON table-1.column = table-2.column;
De exemplu:
SELECT Book.name, Price.price FROM Book RIGHT JOIN Price ON Book.id = Price.id;
Aceasta returnează următoarele:
Toate rândurile din tabelul Preț au fost returnate. Au fost returnate numai rândurile din tabelul Book care au îndeplinit condiția de alăturare. Cele 3rd rândul nu are valoare pentru nume, deoarece nu a fost găsită nicio potrivire.
Alăturați-vă complet exterior PostgreSQL
Acest tip de JOIN va returna toate rândurile din tabel din partea stângă și toate rândurile din tabel din partea dreaptă cu valori nule în cazul în care condiția de îmbinare nu este îndeplinită.
Sintaxă:
SELECT columns FROM table-1 FULL OUTER JOIN table-2 ON table-1.column = table-2.column;
De exemplu:
SELECT Book.name, Price.price FROM Book FULL OUTER JOIN Price ON Book.id = Price.id;
Aceasta returnează următoarele:
Toate rândurile din toate tabelele au fost returnate, cu valori nule unde nu a fost găsită nicio potrivire.
Folosind pgAdmin
Sarcinile de mai sus pot fi realizate în pgAdmin după cum urmează:
pgAdmin Inner Join
Cum să utilizați Theta Join in PostgreSQL folosind pgAdmin
Mai jos sunt pașii pentru a utiliza Theta Join în Postgres folosind pgAdmin:
Pasul 1) Conectați-vă la contul dvs. pgAdmin
Deschideți pgAdmin și conectați-vă folosind datele dvs. de acreditare
Pasul 2) Creați baza de date Demo
- Din bara de navigare din stânga, faceți clic pe Baze de date.
- Faceți clic pe Demo.
Pasul 3) Introduceți interogarea
Introduceți interogarea de mai jos în editorul de interogări:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
Pasul 4) Executați interogarea
Faceți clic pe butonul Execute
Ar trebui să returneze următoarele:
Alăturați-vă EQUI
Pas 1) Conectați-vă la contul dvs. pgAdmin.
Pas 2)
- Din bara de navigare din stânga, faceți clic pe Baze de date.
- Faceți clic pe Demo.
Pas 3) Introduceți interogarea în editorul de interogări:
SELECT * FROM Book JOIN Price ON Book.id = Price.id;
Pas 4) Faceți clic pe butonul Execute.
Ar trebui să returneze următoarele:
Asociere naturală
Pas 1) Conectați-vă la contul dvs. pgAdmin.
Pas 2)
- Din bara de navigare din stânga, faceți clic pe Baze de date.
- Faceți clic pe Demo.
Pas 3) Introduceți interogarea în editorul de interogări:
SELECT * FROM Book NATURAL JOIN Price;
Pas 4) Faceți clic pe butonul Execute.
Ar trebui să returneze următoarele:
pgAdmin Alăturare interioară simplă
Pas 1) Conectați-vă la contul dvs. pgAdmin.
Pas 2)
- Din bara de navigare din stânga, faceți clic pe Baze de date.
- Faceți clic pe Demo.
Pas 3) Introduceți interogarea în editorul de interogări:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
Pas 4) Faceți clic pe butonul Execute.
Ar trebui să returneze următoarele:
pgAdmin Outer Join
Stânga la exterior
Pas 1) Conectați-vă la contul dvs. pgAdmin.
Pas 2)
- Din bara de navigare din stânga, faceți clic pe Baze de date.
- Faceți clic pe Demo.
Pas 3) Introduceți interogarea în editorul de interogări:
SELECT Book.name, Price.price FROM Book LEFT JOIN Price ON Book.id = Price.id;
Pas 4) Faceți clic pe butonul Execute.
Ar trebui să returneze următoarele:
Alăturați-vă la dreapta
Pas 1) Conectați-vă la contul dvs. pgAdmin.
Pas 2)
- Din bara de navigare din stânga, faceți clic pe Baze de date.
- Faceți clic pe Demo.
Pas 3) Introduceți interogarea în editorul de interogări:
SELECT Book.name, Price.price FROM Book RIGHT JOIN Price ON Book.id = Price.id;
Pas 4) Faceți clic pe butonul Execute.
Ar trebui să returneze următoarele:
Alăturare completă exterioară
Pas 1) Conectați-vă la contul dvs. pgAdmin.
Pas 2)
- Din bara de navigare din stânga, faceți clic pe Baze de date.
- Faceți clic pe Demo.
Pas 3) Introduceți interogarea în editorul de interogări:
SELECT Book.name, Price.price FROM Book FULL OUTER JOIN Price ON Book.id = Price.id;
Pas 4) Faceți clic pe butonul Execute.
Ar trebui să returneze următoarele:
Rezumat
- In PostgreSQL, folosim JOIN-urile atunci când trebuie să extragem valori din mai mult de un tabel.
- INNER JOIN este cel mai elementar tip de JOIN. Returnează toate înregistrările în care condiția JOIN specificată a fost îndeplinită.
- LEFT OUTER JOIN returnează toate rândurile din tabelul din stânga și numai rândurile din celălalt tabel în care condiția de îmbinare a fost îndeplinită.
- RIGHT OUTER JOIN returnează toate rândurile din tabelul din dreapta și numai rândurile din celălalt tabel în care condiția de îmbinare a fost îndeplinită.
- Acest tip de JOIN returnează toate rândurile din tabelul din stânga și toate rândurile din tabelul din dreapta cu valori nule în cazul în care condiția de îmbinare nu este îndeplinită.
Descărcați baza de date folosită în acest tutorial