PostgreSQL csatlakozik: belső, külső, bal, jobb, természetes példákkal

Tartalomjegyzék:

Anonim

Mik a PostgreSQL csatlakozások?

A PostgreSQL JOIN fájlokat egynél több táblázat adatainak lekérésére használják. A JOIN-okkal lehetséges, hogy a SELECT és a JOIN utasításokat egyetlen utasításba egyesítsük. Egy JOIN feltétel hozzáadódik az utasításhoz, és minden, a feltételeknek megfelelő sor visszatér.

A különböző táblák értékeit közös oszlopok alapján kombinálják. A közös oszlop többnyire elsődleges kulcs az első táblázatban és idegen kulcs a második táblázatban.

Ebben a PostgreSQL oktatóanyagban megtudhatja:

  • Mik a PostgreSQL csatlakozások?
  • A csatlakozások típusai
  • Belső csatlakozások
    • Theta Csatlakozz
    • EQUI Csatlakozzon
    • Természetes csatlakozás
  • Külső csatlakozások
    • BAL KÜLSŐ CSATLAKOZÁS
    • JOBB KÜLSŐ CSATLAKOZÁS
    • Teljes külső csatlakozás
  • A pgAdmin használatával
  • Belső csatlakozások
    • Theta Csatlakozz
    • EQUI Csatlakozzon
    • Természetes csatlakozás
    • BELSŐ CSATLAKOZÁS (egyszerű csatlakozás)
  • Külső csatlakozások
    • BAL KÜLSŐ CSATLAKOZÁS
    • JOBB KÜLSŐ CSATLAKOZÁS
    • Teljes külső csatlakozás

A csatlakozások típusai

Kétféle JOIN van a PostgreSQL-ben:

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

Belső csatlakozások

A belső csatlakozásoknak 3 típusa van:

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

Theta Csatlakozz

A theta-összekapcsolás lehetővé teszi, hogy két asztal összekapcsolódjon a theta által képviselt feltétel alapján. A Theta csatlakozás minden összehasonlító operátorral működhet. A legtöbb esetben a theta-összekapcsolást belső összekapcsolásnak nevezik.

A theta csatlakozás a JOIN legalapvetőbb típusa. Minden olyan sort visszaad a táblákból, ahol a JOIN feltétel teljesül.

Szintaxis:

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

Vegye figyelembe a Demo adatbázis alábbi táblázatait:

Könyv:

Ár:

Szeretnénk látni minden könyv nevét és a hozzá tartozó Árat. A következő parancsot futtathatjuk:

SELECT Book.name, Price.priceFROM BookINNER JOIN PriceON Book.id = Price.id;

Ez a következőket adja vissza:

Csak 3 sor teljesítette a csatlakozási feltételt.

EQUI Csatlakozzon

Az EQUI csatlakozás lehetővé teszi számunkra, hogy összekapcsoljuk az elsődleges kulcs / idegen kulcs kapcsolatán alapuló két táblázatot. Például:

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

Ez a következőket adja vissza:

A rekordok mindkét táblából a közös oszlopok, vagyis az id oszlop alapján kerültek vissza.

Természetes csatlakozás

Ez a típusú csatlakozás az EQUI csatlakozás írásának másik módját nyújtja számunkra. Javíthatjuk korábbi példánkat a NATURAL kulcsszó hozzáadásával az alábbiak szerint:

SELECT *FROM BookNATURAL JOIN Price;

Ez a következőket adja vissza:

Csak egy azonosító oszlopot adott vissza. A NATURAL JOIN tudta megjegyezni, hogy az id oszlop közös a két táblázatban. Csak egyet adtak vissza.

Külső csatlakozások

Háromféle külső JOIN van a PostgreSQL-ben:

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

BAL KÜLSŐ CSATLAKOZÁS

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

Szintaxis:

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

Látnunk kell minden könyv nevét és a hozzá tartozó Árat. A következő parancsot futtathatjuk:

SELECT Book.name, Price.priceFROM BookLEFT JOIN PriceON Book.id = Price.id;

Ez a következőket adja vissza:

A Könyv táblázat mind a 4 sora vissza lett adva. Az Ár táblázatból csak 3 sor teljesítette a csatlakozási feltételt. Ezért visszatértek. Az utolsó könyvnek nincs megfelelő árértéke.

JOBB KÜLSŐ CSATLAKOZÁS

A JOBB KÜLSŐ CSATLAKOZÁS a táblázat összes sorát a jobb oldalon adja vissza, a táblázat pedig a bal oldali sorokat, ahol a csatlakozási feltétel teljesül.

Szintaxis:

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

Például:

SELECT Book.name, Price.priceFROM BookRIGHT JOIN PriceON Book.id = Price.id;

Ez a következőket adja vissza:

Az Ár táblázat minden sora vissza lett adva. Csak a Könyv táblázat azon sorait adta vissza, amelyek megfeleltek a csatlakozási feltételnek. A 3 rd sorban nincs érték nevét, mivel nem volt illeszkedés.

Teljes külső csatlakozás

Ez a típusú JOIN a táblázat bal és a jobb oldalon lévő összes sorát nullákkal adja vissza, ahol a csatlakozási feltétel nem teljesül.

Szintaxis:

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

Például:

SELECT Book.name, Price.priceFROM BookFULL OUTER JOIN PriceON Book.id = Price.id;

Ez a következőket adja vissza:

Az összes tábla összes sorát visszaküldtük, olyan nullákkal, ahol nem találtak egyezést.

A pgAdmin használatával

A fenti feladatok a pgAdmin programban az alábbiak szerint hajthatók végre:

Belső csatlakozások

Theta Csatlakozz

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

2. lépés)

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

3. lépés: Írja be a lekérdezést a lekérdező szerkesztőbe:

SELECT Book.name, Price.priceFROM BookINNER JOIN PriceON Book.id = Price.id;

4. lépés) Kattintson az Execute gombra.

Ennek vissza kell adnia a következőket:

EQUI Csatlakozzon

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

2. lépés)

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

3. lépés: Írja be a lekérdezést a lekérdező szerkesztőbe:

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

4. lépés) Kattintson az Execute gombra.

Ennek vissza kell adnia a következőket:

Természetes csatlakozás

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

2. lépés)

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

3. lépés: Írja be a lekérdezést a lekérdező szerkesztőbe:

SELECT *FROM BookNATURAL JOIN Price;

4. lépés) Kattintson az Execute gombra.

Ennek vissza kell adnia a következőket:

BELSŐ CSATLAKOZÁS (egyszerű csatlakozás)

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

2. lépés)

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

3. lépés: Írja be a lekérdezést a lekérdező szerkesztőbe:

SELECT Book.name, Price.priceFROM BookINNER JOIN PriceON Book.id = Price.id;

4. lépés) Kattintson az Execute gombra.

Ennek vissza kell adnia a következőket:

Külső csatlakozások

BAL KÜLSŐ CSATLAKOZÁS

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

2. lépés)

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

3. lépés: Írja be a lekérdezést a lekérdező szerkesztőbe:

SELECT Book.name, Price.priceFROM BookLEFT JOIN PriceON Book.id = Price.id;

4. lépés) Kattintson az Execute gombra.

Ennek vissza kell adnia a következőket:

JOBB KÜLSŐ CSATLAKOZÁS

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

2. lépés)

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

3. lépés: Írja be a lekérdezést a lekérdező szerkesztőbe:

SELECT Book.name, Price.priceFROM BookRIGHT JOIN PriceON Book.id = Price.id;

4. lépés) Kattintson az Execute gombra.

Ennek vissza kell adnia a következőket:

Teljes külső csatlakozás

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

2. lépés)

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

3. lépés: Írja be a lekérdezést a lekérdező szerkesztőbe:

SELECT Book.name, Price.priceFROM BookFULL OUTER JOIN PriceON Book.id = Price.id;

4. lépés) Kattintson az Execute gombra.

Ennek vissza kell adnia a következőket:

Összegzés:

  • A PostgreSQL-ben a JOIN-okat használjuk, ha több táblából kell lekérnünk az értékeket.
  • A BELSŐ CSATLAKOZÁS a legalapvetőbb JOIN típus. Minden olyan rekordot visszaad, ahol a megadott JOIN feltétel teljesül.
  • A LEFT OUTER JOIN visszaadja az összes sort a bal oldali táblázatban, és csak azokat a sorokat a másik táblában, ahol a csatlakozási feltétel teljesül.
  • A RIGHT OUTER JOIN az összes sort a jobb oldali táblázatban adja vissza, és csak azokat a sorokat a másik táblában, ahol a csatlakozási feltétel teljesül.
  • Ez a típusú JOIN a bal oldali táblázat összes sorát és a jobb oldali táblázat összes sorát nullákkal adja vissza, ahol a csatlakozási feltétel nem teljesül.

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