PostgreSQL ON OLEMASSA SELECT-funktiolla Operator (esimerkki)
โก รlykรคs yhteenveto
PostgreSQL EXISTS on totuusarvooperaattori, joka testaa, palauttaako korreloiva alikysely jonkin rivin. Tรคmรค antaa SELECT-, INSERT-, UPDATE- ja DELETE-lausekkeiden suodattaa tietoja tehokkaasti vastaavien tietueiden olemassaolon tai puuttumisen perusteella.

Mikรค on OLEMASSA PostgreSQL?
PostgreSQL EXISTS operaattori testaa, onko alikyselyssรค rivi(รค). Tรคmรค tarkoittaa, ettรค operaattoria kรคytetรครคn yhdessรค alikyselyn kanssa. EXISTS-operaattorin sanotaan tรคyttyneen, kun alikyselystรค lรถytyy vรคhintรครคn yksi rivi. Voit kรคyttรครค tรคtรค operaatiota yhdessรค SELECT-, UPDATE-, INSERT- ja DELETE-lausekkeiden kanssa.
PostgreSQL EXISTS-kyselyn syntaksi
Tรคssรค on syntaksi kohteelle PostgreSQL EXISTS lausunto:
WHERE EXISTS (subquery);
Yllรค oleva syntaksi osoittaa, ettรค EXISTS-operaattori ottaa argumentin, joka on alikysely. Alakysely on yksinkertaisesti a SELECT-lause jonka pitรคisi alkaa SELECT * -kirjaimella sarakkeiden nimien tai lausekkeiden luettelon sijaan.
PostgreSQL EXISTS ja SELECT-lauseke
Katsotaanpa, miten SELECT-lauseketta kรคytetรครคn EXISTS-operaattorin kanssa. Meillรค on seuraavat taulukot:
Kirja:
Hinta:
Suorita seuraava lauseke:
SELECT * FROM Book WHERE EXISTS (SELECT * FROM Price WHERE Book.id = Price.id);
Tรคmรค palauttaa seuraavan:
Yllรค olevan komennon pitรคisi palauttaa kaikki Kirja-taulukon tietueet, joiden tunnus vastaa minkรค tahansa alikyselyn tietueen tunnusta. Vain yksi tunnus lรถytyi. Nรคin ollen vain yksi levy palautettiin.
PostgreSQL EXISTS ja INSERT-lauseke
Voimme kรคyttรครค EXISTS-operaattoria an INSERT lausunto. Meillรค on seuraavat 3 pรถytรครค:
Kirja:
Hinta:
Hinta2:
Voimme sitten suorittaa seuraavan lauseen:
INSERT INTO Price SELECT id, price FROM Price2 WHERE EXISTS (SELECT id FROM Book WHERE Book.id = Price2.id);
Hintataulukko on nyt seuraavanlainen:
Hinta5-nimisen taulukon rivi, jonka tunnus on 2, tรคsmรคttiin. Tรคmรค tietue lisรคttiin sitten hintataulukkoon.
PostgreSQL OLEMASSA on UPDATE-lausunto
Voimme kรคyttรครค EXISTS-operaattoria UPDATE-kรคskyssรค.
Suorita seuraava kysely:
UPDATE Price SET price = (SELECT price FROM Price2 WHERE Price2.id = Price.id) WHERE EXISTS (SELECT id, price FROM Price2 WHERE Price2.id = Price.id);
Pรคivitรคmme Hintataulukon hintasaraketta. Tavoitteemme on, ettรค tunnuksen jakavien tuotteiden hinnat ovat samat. Vain yksi rivi osui, eli 5.
Koska hinnat ovat samat, eli 205, pรคivitystรค ei tehty. Jos ero olisi ollut, pรคivitys olisi tehty.
PostgreSQL EXISTS ja DELETE-lauseke
A PostgreSQL DELETE-kรคsky voi kรคyttรครค EXISTS-operaattoria. Tรคssรค on esimerkki:
DELETE FROM Price WHERE EXISTS (SELECT * FROM Price2 WHERE Price.id = Price2.id);
Hintataulukko on nyt seuraavanlainen:
Rivi, jonka tunnus on 5, on poistettu.
PostgreSQL EXISTS-lauseke pgAdmin-komennolla
SQL-komennon lisรคksi samat EXISTS-kyselyt voidaan suorittaa visuaalisesti pgAdmin-kรคyttรถliittymรคn kautta. Katsotaanpa nyt, miten nรคmรค toiminnot voidaan suorittaa pgAdminin avulla:
SELECT-lausekkeen avulla
Alla on vaiheet EXISTS-kyselyn kรคyttรคmiseen PostgreSQL SELECT-lausekkeella pgAdminin avulla:
Vaihe 1) Kirjaudu pgAdmin-tilillesi. Avaa pgAdmin ja kirjaudu tilillesi tunnuksillasi.
Vaihe 2) Luo demotietokanta.
- Napsauta vasemmalla olevasta navigointipalkista Tietokannat.
- Napsauta Demo.
Vaihe 3) Kirjoita alla oleva kysely kyselyeditoriin:
SELECT * FROM Book WHERE EXISTS (SELECT * FROM Price WHERE Book.id = Price.id);
Vaihe 4) Napsauta Suorita-painiketta.
Sen pitรคisi palauttaa seuraavat tiedot:
INSERT-lausunnon kanssa
Suorita sama pgAdminin kautta seuraavasti:
Vaihe 1) Kirjaudu sisรครคn pgAdmin-tilillesi.
Vaihe 2)
- Napsauta vasemmalla olevasta navigointipalkista Tietokannat.
- Napsauta Demo.
Vaihe 3) Kirjoita kysely kyselyeditoriin:
INSERT INTO Price SELECT id, price FROM Price2 WHERE EXISTS (SELECT id FROM Book WHERE Book.id = Price2.id);
Vaihe 4) Napsauta Suorita-painiketta.
Hintataulukon pitรคisi nyt olla seuraava:
PรIVITYSlausunnon kanssa
Suorita sama pgAdminin kautta seuraavasti:
Vaihe 1) Kirjaudu sisรครคn pgAdmin-tilillesi.
Vaihe 2)
- Napsauta vasemmalla olevasta navigointipalkista Tietokannat.
- Napsauta Demo.
Vaihe 3) Kirjoita kysely kyselyeditoriin:
UPDATE Price SET price = (SELECT price FROM Price2 WHERE Price2.id = Price.id) WHERE EXISTS (SELECT id, price FROM Price2 WHERE Price2.id = Price.id);
Vaihe 4) Napsauta Suorita-painiketta.
Hintataulukon pitรคisi nyt olla seuraava:
POISTA-ilmoituksella
Suorita sama pgAdminin kautta seuraavasti:
Vaihe 1) Kirjaudu sisรครคn pgAdmin-tilillesi.
Vaihe 2)
- Napsauta vasemmalla olevasta navigointipalkista Tietokannat.
- Napsauta Demo.
Vaihe 3) Kirjoita kysely kyselyeditoriin:
DELETE FROM Price WHERE EXISTS (SELECT * FROM Price2 WHERE Price.id = Price2.id);
Vaihe 4) Napsauta Suorita-painiketta.
Hintataulukon pitรคisi nyt olla seuraava:
Lataa tรคssรค opetusohjelmassa kรคytetty tietokanta





















