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:
Ár:
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:
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:
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:
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:
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:
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:
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
- A bal oldali navigációs sávban kattintson az Adatbázisok elemre.
- Kattintson a Demo gombra.
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
A következőt kell visszaadnia:
EQUI Csatlakozás
Step 1) Jelentkezzen be pgAdmin fiókjába.
Step 2)
- A bal oldali navigációs sávban kattintson az Adatbázisok elemre.
- Kattintson a Demo gombra.
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.
A következőt kell visszaadnia:
Természetes csatlakozás
Step 1) Jelentkezzen be pgAdmin fiókjába.
Step 2)
- A bal oldali navigációs sávban kattintson az Adatbázisok elemre.
- Kattintson a Demo gombra.
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.
A következőt kell visszaadnia:
pgAdmin Egyszerű belső csatlakozás
Step 1) Jelentkezzen be pgAdmin fiókjába.
Step 2)
- A bal oldali navigációs sávban kattintson az Adatbázisok elemre.
- Kattintson a Demo gombra.
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.
A következőt kell visszaadnia:
pgAdmin külső csatlakozás
Bal külső csatlakozás
Step 1) Jelentkezzen be pgAdmin fiókjába.
Step 2)
- A bal oldali navigációs sávban kattintson az Adatbázisok elemre.
- Kattintson a Demo gombra.
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.
A következőt kell visszaadnia:
Jobb külső csatlakozás
Step 1) Jelentkezzen be pgAdmin fiókjába.
Step 2)
- A bal oldali navigációs sávban kattintson az Adatbázisok elemre.
- Kattintson a Demo gombra.
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.
A következőt kell visszaadnia:
Teljes külső csatlakozás
Step 1) Jelentkezzen be pgAdmin fiókjába.
Step 2)
- A bal oldali navigációs sávban kattintson az Adatbázisok elemre.
- Kattintson a Demo gombra.
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.
A következőt kell visszaadnia:
Ö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