PostgreSQL Tipuri de îmbinări: interioară, exterioară, stânga, dreapta
⚡ Rezumat inteligent
PostgreSQL Join-urile preiau și combină rânduri din două sau mai multe tabele folosind o cheie partajată și includ join-uri interne, cum ar fi theta, EQUI și naturale, plus join-uri externe care acoperă rezultatele stânga, dreapta și complete.

În ce sunt Join-urile PostgreSQL?
PostgreSQL Se alătură sunt utilizate pentru recuperarea datelor din mai multe tabele. Cu ajutorul joncțiunilor, este posibil să combinăm instrucțiunile SELECT și JOIN într-o singură instrucțiune. O condiție JOIN este adăugată instrucțiunii și sunt returnate toate rândurile care îndeplinesc condițiile. 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.
PostgreSQL Alăturare exterioară
Există 3 tipuri de îmbinări exterioare PostgreSQL:
- Stânga la exterior
- Alăturați-vă la dreapta
- Alăturare completă exterioară
PostgreSQL Stânga la exterior
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.
PostgreSQL Alăturați-vă la dreapta
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 doar rândurile din tabelul Carte care au îndeplinit condiția de joncțiune. Al treilea rând nu are nicio valoare pentru nume, deoarece nu s-a 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ă. Următoarele secțiuni prezintă pas cu pas fiecare tip de asociere.
pgAdmin Inner Join
Pașii de mai jos arată cum se execută fiecare variantă de inner join în pgAdmin.
Cum să utilizați Theta Join in PostgreSQL folosind pgAdmin
Mai jos sunt pașii pentru a utiliza Theta Join in PostgreSQL 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
Apoi, rulați cele trei variante de joncțiune externă în pgAdmin folosind pașii de mai jos.
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:
Descărcați baza de date folosită în acest tutorial





























