Kaj so pridružitve PostgreSQL?
PostgreSQL JOIN-i se uporabljajo za pridobivanje podatkov iz več tabel. Z JOIN-i lahko združimo stavka SELECT in JOIN v en stavek. Stavku se pridruži pogoj JOIN in vrnejo se vse vrstice, ki izpolnjujejo pogoje.
Vrednosti iz različnih tabel se kombinirajo na podlagi skupnih stolpcev. Skupni stolpec je večinoma primarni ključ prve tabele in tuji ključ druge tabele.
V tej vadnici PostgreSQL boste izvedeli:
- Kaj so pridružitve PostgreSQL?
- Vrste pridružitev
- Notranje povezave
- Theta Pridružite se
- Pridružite se EQUI
- Natural Join
- Zunanji priključki
- LEVO ZUNANJE PRIDRUŽITEV
- PRAVO ZUNANJE PRIDRUŽITEV
- Polno zunanje pridružitev
- Uporaba pgAdmin
- Notranje povezave
- Theta Pridružite se
- Pridružite se EQUI
- Natural Join
- INNER JOIN (preprosto pridružitev)
- Zunanji priključki
- LEVO ZUNANJE PRIDRUŽITEV
- PRAVO ZUNANJE PRIDRUŽITEV
- Polno zunanje pridružitev
Vrste pridružitev
V programu PostgreSQL sta dve vrsti JOIN:
- Notranje povezave
- Zunanje Pridružite se
Notranje povezave
Obstajajo 3 vrste notranjih spojev:
- Theta se pridruži
- Naravna pridružitev
- Pridružite se EQUI
Theta Pridružite se
Theta združevanje omogoča združitev dveh tabel glede na pogoj, ki ga predstavlja theta. Theta pridružitve lahko delujejo z vsemi primerjalnimi operaterji. V večini primerov se theta združevanje imenuje notranje združevanje.
Theta pridružitev je najosnovnejša vrsta PRIDRUŽITVE. Vrnil bo vse vrstice iz tabel, kjer je izpolnjen pogoj JOIN.
Sintaksa:
SELECT columnsFROM table-1INNER JOIN table-2ON table-1.column = table-2.column;
Upoštevajte naslednje tabele demo zbirke podatkov:
Knjiga:
Cena:
Želimo videti ime vsake knjige in ustrezno ceno. Zaženemo lahko naslednji ukaz:
SELECT Book.name, Price.priceFROM BookINNER JOIN PriceON Book.id = Price.id;
To bo vrnilo naslednje:
Samo 3 vrstice so izpolnile pogoj združevanja.
Pridružite se EQUI
Pridružitev EQUI nam omogoča, da združimo dve tabeli na podlagi odnosa primarni ključ / tuji ključ. Na primer:
SELECT *FROM BookJOIN Price ON Book.id = Price.id;
To bo vrnilo naslednje:
Zapisi so bili vrnjeni iz obeh tabel na podlagi skupnih stolpcev, to je stolpca id.
Natural Join
Ta vrsta pridružitve nam ponuja še en način pisanja članstva EQUI. Naš prejšnji primer lahko izboljšamo z dodajanjem ključne besede NATURAL, kot je prikazano spodaj:
SELECT *FROM BookNATURAL JOIN Price;
To bo vrnilo naslednje:
Vrnjen je samo en stolpec id. NATURAL JOIN je ugotovil, da je stolpec id pogost v obeh tabelah. Vrnili so le enega.
Zunanji priključki
V PostgreSQL obstajajo tri vrste zunanjih JOIN-ov:
- Levo zunanje pridruživanje.
- Desno zunanje pridruživanje.
- Polno zunanje pridružitev
LEVO ZUNANJE PRIDRUŽITEV
LEFT OUTER JOIN vrne vse vrstice v tabeli na levi strani in samo vrstice v desni tabeli, kjer je bil izpolnjen pogoj za združevanje.
Sintaksa:
SELECT columnsFROM table-1LEFT OUTER JOIN table-2ON table-1.column = table-2.column;
Videti moramo ime vsake knjige in ustrezno ceno. Zaženemo lahko naslednji ukaz:
SELECT Book.name, Price.priceFROM BookLEFT JOIN PriceON Book.id = Price.id;
To vrne naslednje:
Vrnjene so bile vse 4 vrstice v tabeli Book. Pogoj za pridružitev so izpolnjevale le 3 vrstice iz tabele s cenami. Zato so jih vrnili. Zadnja knjiga nima ustrezne cenovne vrednosti.
PRAVO ZUNANJE PRIDRUŽITEV
RIGHT OUTER JOIN vrne vse vrstice v tabeli na desni strani in vrstice v tabeli na levi strani, kjer je bil izpolnjen pogoj združevanja.
Sintaksa:
SELECT columnsFROM table-1RIGHT OUTER JOIN table-2ON table-1.column = table-2.column;
Na primer:
SELECT Book.name, Price.priceFROM BookRIGHT JOIN PriceON Book.id = Price.id;
To vrne naslednje:
Vrnjene so vse vrstice v tabeli s cenami. Vrnjene so bile le vrstice v tabeli Book, ki so izpolnjevale pogoj za pridružitev. 3. Tretja vrstica nima vrednosti za ime, ker je bilo ugotovljeno, tekma ni.
Polno zunanje pridružitev
Ta vrsta JOIN bo vrnila vse vrstice v tabeli na levi strani in vse vrstice v tabeli na desni strani z ničelnimi vrednostmi, kjer pogoj združevanja ni izpolnjen.
Sintaksa:
SELECT columnsFROM table-1FULL OUTER JOIN table-2ON table-1.column = table-2.column;
Na primer:
SELECT Book.name, Price.priceFROM BookFULL OUTER JOIN PriceON Book.id = Price.id;
To vrne naslednje:
Vrnjene so bile vse vrstice iz vseh tabel z ničelnimi vrednostmi, kjer ni bilo mogoče najti nobenega ujemanja.
Uporaba pgAdmin
Zgornje naloge je mogoče v pgAdminu izvesti na naslednji način:
Notranje povezave
Theta Pridružite se
Korak 1) Prijavite se v svoj račun pgAdmin.
2. korak)
- V navigacijski vrstici na levi strani kliknite Baze podatkov.
- Kliknite Demo.
3. korak) Vnesite poizvedbo v urejevalnik poizvedb:
SELECT Book.name, Price.priceFROM BookINNER JOIN PriceON Book.id = Price.id;
Korak 4) Kliknite gumb Izvedi.
Vrniti mora naslednje:
Pridružite se EQUI
Korak 1) Prijavite se v svoj račun pgAdmin.
2. korak)
- V navigacijski vrstici na levi strani kliknite Baze podatkov.
- Kliknite Demo.
3. korak) Vnesite poizvedbo v urejevalnik poizvedb:
SELECT *FROM BookJOIN Price ON Book.id = Price.id;
Korak 4) Kliknite gumb Izvedi.
Vrniti mora naslednje:
Natural Join
Korak 1) Prijavite se v svoj račun pgAdmin.
2. korak)
- V navigacijski vrstici na levi strani kliknite Baze podatkov.
- Kliknite Demo.
3. korak) Vnesite poizvedbo v urejevalnik poizvedb:
SELECT *FROM BookNATURAL JOIN Price;
Korak 4) Kliknite gumb Izvedi.
Vrniti mora naslednje:
INNER JOIN (preprosto pridružitev)
Korak 1) Prijavite se v svoj račun pgAdmin.
2. korak)
- V navigacijski vrstici na levi strani kliknite Baze podatkov.
- Kliknite Demo.
3. korak) Vnesite poizvedbo v urejevalnik poizvedb:
SELECT Book.name, Price.priceFROM BookINNER JOIN PriceON Book.id = Price.id;
Korak 4) Kliknite gumb Izvedi.
Vrniti mora naslednje:
Zunanji priključki
LEVO ZUNANJE PRIDRUŽITEV
Korak 1) Prijavite se v svoj račun pgAdmin.
2. korak)
- V navigacijski vrstici na levi strani kliknite Baze podatkov.
- Kliknite Demo.
3. korak) Vnesite poizvedbo v urejevalnik poizvedb:
SELECT Book.name, Price.priceFROM BookLEFT JOIN PriceON Book.id = Price.id;
Korak 4) Kliknite gumb Izvedi.
Vrniti mora naslednje:
PRAVO ZUNANJE PRIDRUŽITEV
Korak 1) Prijavite se v svoj račun pgAdmin.
2. korak)
- V navigacijski vrstici na levi strani kliknite Baze podatkov.
- Kliknite Demo.
3. korak) Vnesite poizvedbo v urejevalnik poizvedb:
SELECT Book.name, Price.priceFROM BookRIGHT JOIN PriceON Book.id = Price.id;
Korak 4) Kliknite gumb Izvedi.
Vrniti mora naslednje:
Polno zunanje pridružitev
Korak 1) Prijavite se v svoj račun pgAdmin.
2. korak)
- V navigacijski vrstici na levi strani kliknite Baze podatkov.
- Kliknite Demo.
3. korak) Vnesite poizvedbo v urejevalnik poizvedb:
SELECT Book.name, Price.priceFROM BookFULL OUTER JOIN PriceON Book.id = Price.id;
Korak 4) Kliknite gumb Izvedi.
Vrniti mora naslednje:
Povzetek:
- V PostgreSQL uporabljamo JOIN-e, kadar moramo pridobiti vrednosti iz več tabel.
- INNER JOIN je najosnovnejša vrsta PRIDRUŽITVE. Vrne vse zapise, kjer je bil izpolnjen določen pogoj PRIDRUŽITEV.
- LEFT OUTER JOIN vrne vse vrstice v levi tabeli in samo vrstice v drugi tabeli, kjer je bil izpolnjen pogoj združevanja.
- RIGHT OUTER JOIN vrne vse vrstice v desni tabeli in samo vrstice v drugi tabeli, kjer je bil izpolnjen pogoj združevanja.
- Ta vrsta JOIN vrne vse vrstice v levi tabeli in vse vrstice v desni tabeli z ničelnimi vrednostmi, kjer pogoj združevanja ni izpolnjen.
Prenesite zbirko podatkov, uporabljeno v tej vadnici