PostgreSQL Slå sammen typer med eksempler: indre, ytre, venstre, høyre
Hva er slutter seg til PostgreSQL?
PostgreSQL tiltrer brukes til å hente data fra mer enn én tabell. Med Joins er det mulig for oss å kombinere SELECT- og JOIN-setningene til en enkelt setning. En JOIN-betingelse legges til setningen, og alle rader som oppfyller betingelsene returneres. Verdiene fra ulike tabeller er kombinert basert på vanlige kolonner. Den vanlige kolonnen er for det meste en primærnøkkel i den første tabellen og en fremmednøkkel i den andre tabellen.
PostgreSQL Bli med typer
Det finnes to typer Joins in PostgreSQL:
- Indre sammenføyninger
- Ytre skjøter
PostgreSQL Indre sammenføyning
Det er 3 typer Inner Joins in PostgreSQL:
- Theta bli med
- Naturlig sammenføyning
- EQUI bli med
Theta Bli med
En theta-sammenføyning lar en slå sammen to tabeller basert på tilstanden som er representert av theta. Theta joins kan fungere med alle sammenligningsoperatører. I de fleste tilfeller blir theta-sammenføyningen referert til som indre sammenføyning.
Theta join er den mest grunnleggende typen JOIN. Den vil returnere alle rader fra tabellene der JOIN-betingelsen er oppfylt.
Syntaks:
SELECT columns FROM table-1 INNER JOIN table-2 ON table-1.column = table-2.column;
Tenk på følgende tabeller i demodatabasen:
Bok:
Pris:
Vi ønsker å se navnet på hver bok og den tilsvarende prisen. Vi kan kjøre følgende kommando:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
Dette vil returnere følgende:
Kun 3 rader oppfylte sammenføyningsbetingelsen.
EQUI Bli med
EQUI-koblingen gir oss en måte å slå sammen to tabeller basert på primærnøkkel/fremmednøkkelforhold. For eksempel:
SELECT * FROM Book JOIN Price ON Book.id = Price.id;
Dette vil returnere følgende:
Poster har blitt returnert fra begge tabellene basert på de vanlige kolonnene, det vil si id-kolonnen.
Naturlig Bli med
Denne typen sammenføyning gir oss en annen måte å skrive en EQUI sammenføyning på. Vi kan forbedre vårt forrige eksempel ved å legge til NATURAL-søkeordet som vist nedenfor:
SELECT * FROM Book NATURAL JOIN Price;
Dette vil returnere følgende:
Bare én id-kolonne har blitt returnert. NATURAL JOIN kunne merke seg at id-kolonnen er vanlig i de to tabellene. Bare én ble returnert.
Postgres Ytre Join
Det er 3 typer ytre sammenføyninger PostgreSQL:
- Venstre ytre skjøt
- Høyre ytre skjøt
- Full ytre sammenføyning
Postgres Venstre Ytre Join
LEFT OUTER JOIN vil returnere alle rader i tabellen på venstre side og bare radene i høyre sidetabell der sammenføyningsbetingelsen er oppfylt.
Syntaks:
SELECT columns FROM table-1 LEFT OUTER JOIN table-2 ON table-1.column = table-2.column;
Vi må se navnet på hver bok og den tilsvarende prisen. Vi kan kjøre følgende kommando:
SELECT Book.name, Price.price FROM Book LEFT JOIN Price ON Book.id = Price.id;
Dette returnerer følgende:
Alle de 4 radene i boktabellen er returnert. Bare 3 rader fra pristabellen oppfylte sammenføyningsbetingelsen. Derfor ble de returnert. Den siste boken har ingen tilsvarende prisverdi.
Postgres Høyre Ytre Join
RIGHT YTRE JOIN returnerer alle rader i tabellen på høyre side og rader i tabellen på venstre side der sammenføyningsbetingelsen er oppfylt.
Syntaks:
SELECT columns FROM table-1 RIGHT OUTER JOIN table-2 ON table-1.column = table-2.column;
For eksempel:
SELECT Book.name, Price.price FROM Book RIGHT JOIN Price ON Book.id = Price.id;
Dette returnerer følgende:
Alle radene i Pristabellen er returnert. Bare radene i boktabellen som oppfylte sammenføyningsbetingelsen ble returnert. Den 3rd rad har ingen verdi for navn siden ingen treff ble funnet.
Full Ytre Bli med PostgreSQL
Denne typen JOIN vil returnere alle rader i tabellen på venstre side og alle rader i tabellen på høyre side med null der sammenføyningsbetingelsen ikke er oppfylt.
Syntaks:
SELECT columns FROM table-1 FULL OUTER JOIN table-2 ON table-1.column = table-2.column;
For eksempel:
SELECT Book.name, Price.price FROM Book FULL OUTER JOIN Price ON Book.id = Price.id;
Dette returnerer følgende:
Alle rader fra alle tabeller er returnert, med nullverdier der ingen treff ble funnet.
Bruker pgAdmin
Oppgavene ovenfor kan utføres i pgAdmin som følger:
pgAdmin Inner Join
Slik bruker du Theta Bli med PostgreSQL ved å bruke pgAdmin
Nedenfor er trinnene for å bruke Theta Join i Postgres ved å bruke pgAdmin:
Trinn 1) Logg på pgAdmin-kontoen din
Åpne pgAdmin og logg på med legitimasjonen din
Trinn 2) Opprett demodatabase
- Fra navigasjonslinjen til venstre klikker du på Databaser.
- Klikk på Demo.
Trinn 3) Skriv inn søket
Skriv inn søket nedenfor i spørringsredigeringsprogrammet:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
Trinn 4) Utfør spørringen
Klikk på Utfør-knappen
Den skal returnere følgende:
EQUI Bli med
Trinn 1) Logg på pgAdmin-kontoen din.
Trinn 2)
- Fra navigasjonslinjen til venstre klikker du på Databaser.
- Klikk på Demo.
Trinn 3) Skriv inn søket i spørringsredigeringsprogrammet:
SELECT * FROM Book JOIN Price ON Book.id = Price.id;
Trinn 4) Klikk på Utfør-knappen.
Den skal returnere følgende:
Naturlig Bli med
Trinn 1) Logg på pgAdmin-kontoen din.
Trinn 2)
- Fra navigasjonslinjen til venstre klikker du på Databaser.
- Klikk på Demo.
Trinn 3) Skriv inn søket i spørringsredigeringsprogrammet:
SELECT * FROM Book NATURAL JOIN Price;
Trinn 4) Klikk på Utfør-knappen.
Den skal returnere følgende:
pgAdmin Enkel indre deltakelse
Trinn 1) Logg på pgAdmin-kontoen din.
Trinn 2)
- Fra navigasjonslinjen til venstre klikker du på Databaser.
- Klikk på Demo.
Trinn 3) Skriv inn søket i spørringsredigeringsprogrammet:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
Trinn 4) Klikk på Utfør-knappen.
Den skal returnere følgende:
pgAdmin Outer Join
Venstre ytre skjøt
Trinn 1) Logg på pgAdmin-kontoen din.
Trinn 2)
- Fra navigasjonslinjen til venstre klikker du på Databaser.
- Klikk på Demo.
Trinn 3) Skriv inn søket i spørringsredigeringsprogrammet:
SELECT Book.name, Price.price FROM Book LEFT JOIN Price ON Book.id = Price.id;
Trinn 4) Klikk på Utfør-knappen.
Den skal returnere følgende:
Høyre ytre skjøt
Trinn 1) Logg på pgAdmin-kontoen din.
Trinn 2)
- Fra navigasjonslinjen til venstre klikker du på Databaser.
- Klikk på Demo.
Trinn 3) Skriv inn søket i spørringsredigeringsprogrammet:
SELECT Book.name, Price.price FROM Book RIGHT JOIN Price ON Book.id = Price.id;
Trinn 4) Klikk på Utfør-knappen.
Den skal returnere følgende:
Full ytre sammenføyning
Trinn 1) Logg på pgAdmin-kontoen din.
Trinn 2)
- Fra navigasjonslinjen til venstre klikker du på Databaser.
- Klikk på Demo.
Trinn 3) Skriv inn søket i spørringsredigeringsprogrammet:
SELECT Book.name, Price.price FROM Book FULL OUTER JOIN Price ON Book.id = Price.id;
Trinn 4) Klikk på Utfør-knappen.
Den skal returnere følgende:
Oppsummering
- In PostgreSQL, bruker vi JOINs når vi trenger å hente verdier fra mer enn én tabell.
- INNER JOIN er den mest grunnleggende typen JOIN. Den returnerer alle poster der den angitte JOIN-betingelsen var oppfylt.
- LEFT OUTER JOIN returnerer alle rader i den venstre tabellen og bare radene i den andre tabellen der sammenføyningsbetingelsen er oppfylt.
- RIGHT OUTER JOIN returnerer alle rader i den høyre tabellen og bare rader i den andre tabellen der sammenføyningsbetingelsen er oppfylt.
- Denne typen JOIN returnerer alle rader i venstre tabell og alle rader i høyre tabell med null der sammenføyningsbetingelsen ikke er oppfylt.
Last ned databasen som brukes i denne opplæringen