PostgreSQL Csatlakozási típusok példákkal: belső, külső, bal, jobb

Mik azok a csatlakozások PostgreSQL?

PostgreSQL csatlakozik több tábla adatainak lekérésére szolgálnak. A Joins segítségével lehetővé válik, hogy a SELECT és JOIN utasításokat egyetlen utasításba vonjuk össze. A JOIN feltétel hozzáadódik az utasításhoz, és a feltételeknek megfelelő összes sort visszaküldi. A különböző táblázatokból származó értékeket a rendszer közös oszlopok alapján kombinálja. A közös oszlop többnyire egy elsődleges kulcs az első táblában és egy idegen kulcs a második táblában.

PostgreSQL Csatlakozási típusok

Kétféle csatlakozás létezik PostgreSQL:

  • Belső csatlakozások
  • Külső csatlakozások

PostgreSQL Belső összekapcsolás

3 típusú belső csatlakozás létezik PostgreSQL:

  • Theta csatlakozzon
  • Természetes csatlakozás
  • EQUI csatlakozás

Theta Join

A théta összekapcsolás lehetővé teszi két tábla összekapcsolását a théta által képviselt feltétel alapján. A théta csatlakozások minden összehasonlító operátorral működhetnek. A legtöbb esetben a théta csatlakozást belső csatlakozásnak nevezik.

A theta join a JOIN legalapvetőbb típusa. Visszaadja a táblák összes sorát, ahol a JOIN feltétel teljesül.

Syntax:

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

Tekintsük a Demo adatbázis alábbi táblázatait:

Könyv:

PostgreSQL Theta Join

Ár:

PostgreSQL Theta Join

Szeretnénk látni az egyes könyvek nevét és a hozzá tartozó árat. A következő parancsot futtathatjuk:

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

Ez a következőt adja vissza:

PostgreSQL Theta Join

Csak 3 sor felelt meg az összekapcsolási feltételnek.

EQUI Csatlakozás

Az EQUI join lehetőséget biztosít két tábla összekapcsolására az elsődleges kulcs/idegen kulcs kapcsolat alapján. Például:

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

Ez a következőt adja vissza:

PostgreSQL EQUI Csatlakozás

Mindkét táblából a rekordok a közös oszlopok, azaz az id oszlop alapján kerültek visszaadásra.

Természetes csatlakozás

Ez a fajta csatlakozás egy másik módot kínál az EQUI-csatlakozás írására. Az előző példánkat javíthatjuk a NATURAL kulcsszó hozzáadásával, az alábbiak szerint:

SELECT *
FROM Book
NATURAL JOIN Price;

Ez a következőt adja vissza:

PostgreSQL Természetes csatlakozás

Csak egy azonosítóoszlop került visszaadásra. A NATURAL JOIN meg tudta jegyezni, hogy az id oszlop közös a két táblában. Csak egy került vissza.

Postgres külső csatlakozás

3 típusú külső csatlakozás létezik PostgreSQL:

  • Bal külső csatlakozás
  • Jobb külső csatlakozás
  • Teljes külső csatlakozás

Postgres bal külső csatlakozás

A LEFT OUTER JOIN a táblázat összes sorát a bal oldalon, és a jobb oldali táblázatban csak azokat a sorokat adja vissza, ahol az összekapcsolási feltétel teljesült.

Syntax:

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

Látnunk kell az egyes könyvek nevét és a hozzá tartozó árat. A következő parancsot futtathatjuk:

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

Ez a következőket adja vissza:

Postgres bal külső csatlakozás

A Könyv táblázat mind a 4 sora visszakerült. Az Ár táblázatból mindössze 3 sor felelt meg az összekapcsolási feltételnek. Ezért visszaküldték őket. Az utolsó könyvnek nincs megfelelő árértéke.

Postgres jobb külső csatlakozás

A JOBB KÜLSŐ ÖSSZEFÜGGÉS visszaadja a táblázat összes sorát a jobb oldalon, és a táblázat összes sorát a bal oldalon, ahol az összekapcsolási feltétel teljesült.

Syntax:

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

Például:

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

Ez a következőket adja vissza:

Postgres jobb külső csatlakozás

Az Ár táblázat összes sora visszakerült. A Könyv táblázatban csak azok a sorok adták vissza, amelyek megfeleltek az összekapcsolási feltételnek. A 3rd sor nem rendelkezik névértékkel, mivel nem található egyezés.

Teljes külső csatlakozás PostgreSQL

Ez a típusú JOIN a táblázat összes sorát a bal oldalon, a táblázat összes sorát pedig a jobb oldalon nullával adja vissza, ahol az összekapcsolási feltétel nem teljesül.

Syntax:

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

Például:

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

Ez a következőket adja vissza:

Postgres teljes külső csatlakozás

Az összes tábla összes sora visszakerült, nullákkal, ahol nem található egyezés.

pgAdmin használatával

A fenti feladatok a pgAdminban a következők szerint hajthatók végre:

pgAdmin belső csatlakozás

A Theta használata Csatlakozzon PostgreSQL pgAdmin használatával

Az alábbiakban bemutatjuk a Theta Join használatának lépéseit a Postgresben a pgAdmin segítségével:

1. lépés) Jelentkezzen be pgAdmin fiókjába

Nyissa meg a pgAdmin alkalmazást, és jelentkezzen be a hitelesítő adataival

2. lépés) Hozzon létre bemutató adatbázist

  1. A bal oldali navigációs sávban kattintson az Adatbázisok elemre.
  2. Kattintson a Demo gombra.

pgAdmin belső csatlakozás

3. lépés) Írja be a lekérdezést

Írja be az alábbi lekérdezést a lekérdezésszerkesztőbe:

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

4. lépés) Hajtsa végre a lekérdezést

Kattintson a Végrehajtás gombra

pgAdmin belső csatlakozás

A következőt kell visszaadnia:

pgAdmin belső csatlakozás

EQUI Csatlakozás

Step 1) Jelentkezzen be pgAdmin fiókjába.

Step 2)

  1. A bal oldali navigációs sávban kattintson az Adatbázisok elemre.
  2. Kattintson a Demo gombra.

pgAdmin EQUI Csatlakozás

Step 3) Írja be a lekérdezést a lekérdezésszerkesztőbe:

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

Step 4) Kattintson a Végrehajtás gombra.

pgAdmin EQUI Csatlakozás

A következőt kell visszaadnia:

pgAdmin EQUI Csatlakozás

Természetes csatlakozás

Step 1) Jelentkezzen be pgAdmin fiókjába.

Step 2)

  1. A bal oldali navigációs sávban kattintson az Adatbázisok elemre.
  2. Kattintson a Demo gombra.

pgAdmin Természetes csatlakozás

Step 3) Írja be a lekérdezést a lekérdezésszerkesztőbe:

SELECT *
FROM Book 
NATURAL JOIN Price;

Step 4) Kattintson a Végrehajtás gombra.

pgAdmin Természetes csatlakozás

A következőt kell visszaadnia:

pgAdmin Természetes csatlakozás

pgAdmin Egyszerű belső csatlakozás

Step 1) Jelentkezzen be pgAdmin fiókjába.

Step 2)

  1. A bal oldali navigációs sávban kattintson az Adatbázisok elemre.
  2. Kattintson a Demo gombra.

pgAdmin Egyszerű belső csatlakozás

Step 3) Írja be a lekérdezést a lekérdezésszerkesztőbe:

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

Step 4) Kattintson a Végrehajtás gombra.

pgAdmin Egyszerű belső csatlakozás

A következőt kell visszaadnia:

pgAdmin Egyszerű belső csatlakozás

pgAdmin külső csatlakozás

Bal külső csatlakozás

Step 1) Jelentkezzen be pgAdmin fiókjába.

Step 2)

  1. A bal oldali navigációs sávban kattintson az Adatbázisok elemre.
  2. Kattintson a Demo gombra.

pgAdmin bal külső csatlakozás

Step 3) Írja be a lekérdezést a lekérdezésszerkesztőbe:

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

Step 4) Kattintson a Végrehajtás gombra.

pgAdmin bal külső csatlakozás

A következőt kell visszaadnia:

pgAdmin bal külső csatlakozás

Jobb külső csatlakozás

Step 1) Jelentkezzen be pgAdmin fiókjába.

Step 2)

  1. A bal oldali navigációs sávban kattintson az Adatbázisok elemre.
  2. Kattintson a Demo gombra.

pgAdmin jobb külső csatlakozás

Step 3) Írja be a lekérdezést a lekérdezésszerkesztőbe:

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

Step 4) Kattintson a Végrehajtás gombra.

pgAdmin jobb külső csatlakozás

A következőt kell visszaadnia:

pgAdmin jobb külső csatlakozás

Teljes külső csatlakozás

Step 1) Jelentkezzen be pgAdmin fiókjába.

Step 2)

  1. A bal oldali navigációs sávban kattintson az Adatbázisok elemre.
  2. Kattintson a Demo gombra.

pgAdmin Teljes külső csatlakozás

Step 3) Írja be a lekérdezést a lekérdezésszerkesztőbe:

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

Step 4) Kattintson a Végrehajtás gombra.

pgAdmin Teljes külső csatlakozás

A következőt kell visszaadnia:

pgAdmin Teljes külső csatlakozás

Összegzésként

  • In PostgreSQL, akkor JOIN-okat használunk, ha egynél több táblából kell értékeket lekérnünk.
  • A BELSŐ JOIN a JOIN legalapvetőbb típusa. Minden rekordot visszaad, ahol a megadott JOIN feltétel teljesült.
  • A LEFT OUTER JOIN a bal oldali tábla összes sorát adja vissza, és csak a másik tábla azon sorait, amelyekben az összekapcsolási feltétel teljesült.
  • A RIGHT OUTER JOIN a jobb oldali tábla összes sorát adja vissza, és csak azokat a sorokat a másik táblában, ahol az összekapcsolási feltétel teljesült.
  • Ez a típusú JOIN visszaadja a bal oldali tábla összes sorát és a jobb oldali tábla összes sorát nullával, ahol az összekapcsolási feltétel nem teljesül.

Töltse le az oktatóanyagban használt adatbázist