PostgreSQL Olemassa Select, Insert, Update & Delete -esimerkillä
Mitä on olemassa PostgreSQL?
- PostgreSQL EXISTS operaattori testaa, onko alikyselyssä rivejä. 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ä toimintoa yhdessä SELECT-, UPDATE-, INSERT- ja DELETE-käskyjen kanssa.
Postgres on olemassa kyselysyntaksi
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 On olemassa SELECT-lausekkeen kanssa
Katsotaanpa, kuinka SELECT-käskyä 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 Löytyy INSERT-lausekkeen kanssa
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.
Postgres on olemassa UPDATE-ilmoituksen kanssa
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.
Postgres on olemassa DELETE-lausekkeen kanssa
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 Löytyy pgAdmin-lausunto
Katsotaan nyt, kuinka nämä toiminnot voidaan suorittaa pgAdminilla:
Kuinka käyttää Exists-kyselyä sisään PostgreSQL SELECT-lauseella pgAdminilla
Alla on vaiheet Exists-kyselyn käyttämiseksi PostgreSQL SELECT-käskyllä pgAdminilla:
Vaihe 1) Kirjaudu pgAdmin-tilillesi
Avaa pgAdmin ja kirjaudu sisään tilillesi tunnuksillasi
Vaihe 2) Luo esittelytietokanta
- Valitse vasemmalla olevasta navigointipalkista Tietokannat.
- Napsauta Demo.
Vaihe 3) Kirjoita kysely
Kirjoita alla oleva kysely kyselyeditoriin:
SELECT * FROM Book WHERE EXISTS (SELECT * FROM Price WHERE Book.id = Price.id);
Vaihe 4) Suorita kysely
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)
- Valitse 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)
- Valitse 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)
- Valitse 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:
Yhteenveto
- EXISTS-operaattori testaa, onko alikyselyssä rivejä.
- Sitä käytetään alikyselyn kanssa, ja sen sanotaan täyttyneen, kun alikysely palauttaa vähintään yhden rivin.
- Sitä käytetään yhdessä SELECT-, UPDATE-, INSERT- ja DELETE-käskyjen kanssa.
Lataa tässä opetusohjelmassa käytetty tietokanta