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:

PostgreSQL On olemassa SELECT-lausekkeen kanssa

Hinta:

PostgreSQL On olemassa SELECT-lausekkeen kanssa

Suorita seuraava lauseke:

SELECT *
FROM Book
WHERE EXISTS (SELECT *
              FROM Price
              WHERE Book.id = Price.id);

Tämä palauttaa seuraavan:

PostgreSQL On olemassa SELECT-lausekkeen kanssa

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:

PostgreSQL Löytyy INSERT-lausekkeen kanssa

Hinta:

PostgreSQL Löytyy INSERT-lausekkeen kanssa

Hinta2:

PostgreSQL Löytyy INSERT-lausekkeen kanssa

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:

PostgreSQL Löytyy INSERT-lausekkeen kanssa

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);

Postgres on olemassa UPDATE-ilmoituksen kanssa

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:

Postgres on olemassa DELETE-lausekkeen kanssa

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

  1. Valitse vasemmalla olevasta navigointipalkista Tietokannat.
  2. Napsauta Demo.

PostgreSQL Löytyy pgAdmin-lausunto

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

PostgreSQL Löytyy pgAdmin-lausunto

Sen pitäisi palauttaa seuraavat tiedot:

PostgreSQL Löytyy pgAdmin-lausunto

INSERT-lausunnon kanssa

Suorita sama pgAdminin kautta seuraavasti:

Vaihe 1) Kirjaudu sisään pgAdmin-tilillesi.

Vaihe 2)

  1. Valitse vasemmalla olevasta navigointipalkista Tietokannat.
  2. Napsauta Demo.

Lausunto olemassa PostgreSQL pgAdminin avulla

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.

Lausunto olemassa PostgreSQL pgAdminin avulla

Hintataulukon pitäisi nyt olla seuraava:

Lausunto olemassa PostgreSQL pgAdminin avulla

PÄIVITYSlausunnon kanssa

Suorita sama pgAdminin kautta seuraavasti:

Vaihe 1) Kirjaudu sisään pgAdmin-tilillesi.

Vaihe 2)

  1. Valitse vasemmalla olevasta navigointipalkista Tietokannat.
  2. Napsauta Demo.

Lausunto olemassa PostgreSQL pgAdminin avulla

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.

PostgreSQL Löytyy pgAdmin-lausunto

Hintataulukon pitäisi nyt olla seuraava:

PostgreSQL Löytyy pgAdmin-lausunto

POISTA-ilmoituksella

Suorita sama pgAdminin kautta seuraavasti:

Vaihe 1) Kirjaudu sisään pgAdmin-tilillesi.

Vaihe 2)

  1. Valitse vasemmalla olevasta navigointipalkista Tietokannat.
  2. Napsauta Demo.

PostgreSQL Löytyy pgAdmin-lausunto

Vaihe 3) Kirjoita kysely kyselyeditoriin:

DELETE FROM Price
WHERE EXISTS (SELECT *
              FROM Price2
              WHERE Price.id = Price2.id);

Vaihe 4) Napsauta Suorita-painiketta.

PostgreSQL Löytyy pgAdmin-lausunto

Hintataulukon pitäisi nyt olla seuraava:

PostgreSQL Löytyy pgAdmin-lausunto

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