Kas yra „PostgreSQL“ prisijungimai?
„PostgreSQL JOIN“ naudojami duomenims gauti iš daugiau nei vienos lentelės. Naudodami JOIN, mes galime sujungti SELECT ir JOIN sakinius į vieną teiginį. Prie teiginio pridedama sąlyga JUNGTI ir visos eilutės, atitinkančios sąlygas, grąžinamos.
Skirtingų lentelių vertės sujungiamos pagal bendrus stulpelius. Dažniausiai bendras stulpelis yra pagrindinis raktas pirmoje lentelėje ir užsienio raktas iš antrosios lentelės.
Šioje „PostgreSQL“ pamokoje sužinosite:
- Kas yra „PostgreSQL“ prisijungimai?
- Sujungimų tipai
- Vidiniai sujungimai
- Theta Prisijunk
- EQUI prisijungti
- Natūralus prisijungimas
- Išoriniai sujungimai
- Kairysis išorinis prisijungimas
- TEISI IŠORINIS PRISIJUNGIMAS
- Visiškas išorinis prisijungimas
- Naudojant pgAdmin
- Vidiniai sujungimai
- Theta Prisijunk
- EQUI prisijungti
- Natūralus prisijungimas
- INNER JOIN (paprastas prisijungimas)
- Išoriniai sujungimai
- Kairysis išorinis prisijungimas
- TEISI IŠORINIS PRISIJUNGIMAS
- Visiškas išorinis prisijungimas
Sujungimų tipai
„PostgreSQL“ yra du JOIN tipai:
- Vidiniai sujungimai
- Išorinis prisijungimas
Vidiniai sujungimai
Yra 3 vidinių sujungimų tipai:
- Teta prisijungia
- Natūralus prisijungimas
- EQUI prisijungti
Theta Prisijunk
Teta sujungimas leidžia sujungti dvi lenteles pagal sąlygą, kurią rodo teta. „Theta“ prisijungimas gali dirbti su visais palyginimo operatoriais. Daugeliu atvejų teta sujungimas vadinamas vidiniu sujungimu.
Teta jungtis yra pats pagrindinis JOIN tipas. Jis grąžins visas lentelių eilutes, kuriose tenkinama JOIN sąlyga.
Sintaksė:
SELECT columnsFROM table-1INNER JOIN table-2ON table-1.column = table-2.column;
Apsvarstykite šias demonstracinės duomenų bazės lenteles:
Knyga:
Kaina:
Norime pamatyti kiekvienos knygos pavadinimą ir atitinkamą kainą. Mes galime paleisti šią komandą:
SELECT Book.name, Price.priceFROM BookINNER JOIN PriceON Book.id = Price.id;
Tai grąžins:
Tik 3 eilutės patenkino prisijungimo sąlygą.
EQUI prisijungti
EQUI prisijungimas suteikia mums galimybę sujungti dvi lenteles, pagrįstas pirminio rakto / užsienio rakto ryšiu. Pavyzdžiui:
SELECT *FROM BookJOIN Price ON Book.id = Price.id;
Tai grąžins:
Įrašai buvo grąžinti iš abiejų lentelių, remiantis bendrais stulpeliais, tai yra stulpeliu „ID“.
Natūralus prisijungimas
Šio tipo prisijungimas suteikia mums dar vieną būdą rašyti EQUI prisijungimą. Mes galime patobulinti savo ankstesnį pavyzdį pridėdami „NATURAL“ raktinį žodį, kaip parodyta žemiau:
SELECT *FROM BookNATURAL JOIN Price;
Tai grąžins:
Grąžintas tik vienas ID stulpelis. „NATURAL JOIN“ sugebėjo pastebėti, kad stulpelis „id“ yra bendras dviejose lentelėse. Tik vienas buvo grąžintas.
Išoriniai sujungimai
„PostgreSQL“ yra trijų tipų išoriniai JOIN:
- Kairysis išorinis prisijungimas.
- Dešinysis išorinis prisijungimas.
- Visiškas išorinis prisijungimas
Kairysis išorinis prisijungimas
„LEFT OUTER JOIN“ grąžins visas lentelės eilutes kairėje pusėje ir tik tas dešinės pusės lentelės eilutes, kuriose įvykdyta sujungimo sąlyga.
Sintaksė:
SELECT columnsFROM table-1LEFT OUTER JOIN table-2ON table-1.column = table-2.column;
Turime pamatyti kiekvienos knygos pavadinimą ir atitinkamą kainą. Mes galime paleisti šią komandą:
SELECT Book.name, Price.priceFROM BookLEFT JOIN PriceON Book.id = Price.id;
Tai grąžina:
Grąžintos visos 4 knygos lentelės eilutės. Tik 3 lentelės „Kaina“ eilutės atitiko prisijungimo sąlygą. Taigi jie buvo grąžinti. Paskutinė knyga neturi atitinkamos kainos vertės.
TEISI IŠORINIS PRISIJUNGIMAS
„Dešinioji išorinė jungtis“ grąžina visas lentelės eilutes dešinėje pusėje ir lentelės eilutes kairėje pusėje, kur įvykdyta sujungimo sąlyga.
Sintaksė:
SELECT columnsFROM table-1RIGHT OUTER JOIN table-2ON table-1.column = table-2.column;
Pavyzdžiui:
SELECT Book.name, Price.priceFROM BookRIGHT JOIN PriceON Book.id = Price.id;
Tai grąžina:
Grąžintos visos kainos lentelės eilutės. Buvo grąžintos tik tos knygos lentelės eilutės, kurios atitiko prisijungimo sąlygą. 3 -oje eilutėje nėra vardo vertės, nes nerasta atitikties.
Visiškas išorinis prisijungimas
Šio tipo JOIN grąžins visas lentelės eilutes kairėje pusėje ir visas lentelės eilutes dešinėje pusėje su nuliais, kai netenkinama prisijungimo sąlyga.
Sintaksė:
SELECT columnsFROM table-1FULL OUTER JOIN table-2ON table-1.column = table-2.column;
Pavyzdžiui:
SELECT Book.name, Price.priceFROM BookFULL OUTER JOIN PriceON Book.id = Price.id;
Tai grąžina:
Visos eilutės iš visų lentelių buvo grąžintos su niekomis, kur atitiktis nerasta.
Naudojant pgAdmin
Pirmiau nurodytas užduotis „pgAdmin“ galite atlikti taip:
Vidiniai sujungimai
Theta Prisijunk
1 veiksmas) Prisijunkite prie „pgAdmin“ paskyros.
2 žingsnis)
- Kairėje esančioje naršymo juostoje spustelėkite Duomenų bazės.
- Spustelėkite Demo.
3 žingsnis. Įveskite užklausą į užklausos redaktorių:
SELECT Book.name, Price.priceFROM BookINNER JOIN PriceON Book.id = Price.id;
4 žingsnis) Spustelėkite mygtuką Vykdyti.
Tai turėtų grąžinti:
EQUI prisijungti
1 veiksmas) Prisijunkite prie „pgAdmin“ paskyros.
2 žingsnis)
- Kairėje esančioje naršymo juostoje spustelėkite Duomenų bazės.
- Spustelėkite Demo.
3 žingsnis. Įveskite užklausą į užklausos redaktorių:
SELECT *FROM BookJOIN Price ON Book.id = Price.id;
4 žingsnis) Spustelėkite mygtuką Vykdyti.
Tai turėtų grąžinti:
Natūralus prisijungimas
1 veiksmas) Prisijunkite prie „pgAdmin“ paskyros.
2 žingsnis)
- Kairėje esančioje naršymo juostoje spustelėkite Duomenų bazės.
- Spustelėkite Demo.
3 žingsnis. Įveskite užklausą į užklausos redaktorių:
SELECT *FROM BookNATURAL JOIN Price;
4 žingsnis) Spustelėkite mygtuką Vykdyti.
Tai turėtų grąžinti:
INNER JOIN (paprastas prisijungimas)
1 veiksmas) Prisijunkite prie „pgAdmin“ paskyros.
2 žingsnis)
- Kairėje esančioje naršymo juostoje spustelėkite Duomenų bazės.
- Spustelėkite Demo.
3 žingsnis. Įveskite užklausą į užklausos redaktorių:
SELECT Book.name, Price.priceFROM BookINNER JOIN PriceON Book.id = Price.id;
4 žingsnis) Spustelėkite mygtuką Vykdyti.
Tai turėtų grąžinti:
Išoriniai sujungimai
Kairysis išorinis prisijungimas
1 veiksmas) Prisijunkite prie „pgAdmin“ paskyros.
2 žingsnis)
- Kairėje esančioje naršymo juostoje spustelėkite Duomenų bazės.
- Spustelėkite Demo.
3 žingsnis. Įveskite užklausą į užklausos redaktorių:
SELECT Book.name, Price.priceFROM BookLEFT JOIN PriceON Book.id = Price.id;
4 žingsnis) Spustelėkite mygtuką Vykdyti.
Tai turėtų grąžinti:
TEISI IŠORINIS PRISIJUNGIMAS
1 veiksmas) Prisijunkite prie „pgAdmin“ paskyros.
2 žingsnis)
- Kairėje esančioje naršymo juostoje spustelėkite Duomenų bazės.
- Spustelėkite Demo.
3 žingsnis. Įveskite užklausą į užklausos redaktorių:
SELECT Book.name, Price.priceFROM BookRIGHT JOIN PriceON Book.id = Price.id;
4 žingsnis) Spustelėkite mygtuką Vykdyti.
Tai turėtų grąžinti:
Visiškas išorinis prisijungimas
1 veiksmas) Prisijunkite prie „pgAdmin“ paskyros.
2 žingsnis)
- Kairėje esančioje naršymo juostoje spustelėkite Duomenų bazės.
- Spustelėkite Demo.
3 žingsnis. Įveskite užklausą į užklausos redaktorių:
SELECT Book.name, Price.priceFROM BookFULL OUTER JOIN PriceON Book.id = Price.id;
4 žingsnis) Spustelėkite mygtuką Vykdyti.
Tai turėtų grąžinti:
Santrauka:
- „PostgreSQL“ mes naudojame JOIN, kai reikia gauti reikšmes iš daugiau nei vienos lentelės.
- INNER JOIN yra pats paprasčiausias JOIN tipas. Jis grąžina visus įrašus, kuriuose nurodyta JOIN sąlyga buvo įvykdyta.
- LEFT OUTER JOIN grąžina visas kairės lentelės eilutes ir tik kitos lentelės eilutes, kuriose įvykdyta prisijungimo sąlyga.
- RIGHT OUTER JOIN grąžina visas eilutes dešinėje pusėje esančioje lentelėje ir tik eilutes kitoje lentelėje, kur įvykdyta prisijungimo sąlyga.
- Šis JOIN tipas grąžina visas kairės lentelės eilutes ir visas dešinės lentelės eilutes su nuliais, kai netenkinama prisijungimo sąlyga.
Atsisiųskite šioje pamokoje naudojamą duomenų bazę