PostgreSQL Olemas valiku, lisamise, värskendamise ja kustutamise näitega

Mis on olemas PostgreSQL?

. PostgreSQL OLEMAS operaator testib, kas alampäringus on rida(d). See tähendab, et operaatorit kasutatakse koos alampäringuga. Operaator Exists on väidetavalt täidetud, kui alampäringust leitakse vähemalt üks rida. Seda toimingut saate kasutada koos käskudega SELECT, UPDATE, INSERT ja DELETE.

Postgres eksisteerib päringu süntaks

Siin on süntaks PostgreSQL EXISTS väide:

WHERE EXISTS (subquery);

Ülaltoodud süntaks näitab, et operaator EXISTS võtab sisse argumendi, mis on alampäring. Alampäring on lihtsalt a SELECT avaldus mis peaks algama tähega SELECT *, mitte veergude nimede või avaldiste loendiga.

PostgreSQL Olemas koos SELECT avaldusega

Vaatame, kuidas kasutada SELECT-lauset operaatoriga EXISTS. Meil on järgmised tabelid:

Raamat:

PostgreSQL Olemas koos SELECT avaldusega

Hind:

PostgreSQL Olemas koos SELECT avaldusega

Käivitage järgmine avaldus:

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

See tagastab järgmise:

PostgreSQL Olemas koos SELECT avaldusega

Ülaltoodud käsk peaks tagastama kõik tabeli Book kirjed, mille ID ühtib alampäringu kõigi kirjete ID-ga. Vastas ainult üks ID. Seega tagastati ainult üks plaat.

PostgreSQL Olemas koos INSERT-avaldusega

Saame kasutada operaatorit EXISTS INSERT avaldus. Meil on järgmised 3 tabelit:

Raamat:

PostgreSQL Olemas koos INSERT-avaldusega

Hind:

PostgreSQL Olemas koos INSERT-avaldusega

Hind2:

PostgreSQL Olemas koos INSERT-avaldusega

Seejärel saame käivitada järgmise avalduse:

INSERT INTO Price
SELECT id, price
FROM Price2
WHERE EXISTS (SELECT id
              FROM Book
              WHERE Book.id = Price2.id);

Hinnatabel on nüüd järgmine:

PostgreSQL Olemas koos INSERT-avaldusega

Tabeli Hind5 rida ID-ga 2 sobitati. See rekord sisestati seejärel hinnatabelisse.

Postgres on olemas koos UPDATE avaldusega

UPDATE avalduses saame kasutada operaatorit EXISTS.

Käivitage järgmine päring:

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 olemas koos UPDATE avaldusega

Uuendame Hindade tabeli hinna veergu. Meie eesmärk on, et ID-d jagavate kaupade hinnad oleksid samad. Sobitatud oli ainult üks rida, see tähendab 5.

Kuna aga hinnad on võrdsed ehk siis 205, siis uuendust ei tehtud. Kui vahe oleks olnud, oleks värskendus tehtud.

Postgres on olemas DELETE-avaldusega

A PostgreSQL DELETE avaldus võib kasutada operaatorit EXISTS. Siin on näide:

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

Hinnatabel on nüüd järgmine:

Postgres on olemas DELETE-avaldusega

Rida, mille ID on 5, on kustutatud.

PostgreSQL Olemas avaldus pgAdmini abil

Nüüd vaatame, kuidas saab pgAdmini abil neid toiminguid teha:

Kuidas kasutada päringut Exists in PostgreSQL SELECT avaldusega pgAdmini abil

Allpool on toodud sammud päringu Exists kasutamiseks PostgreSQL SELECT-lausega pgAdmini abil:

Samm 1) Logige sisse oma pgAdmini kontole

Avage pgAdmin ja logige oma mandaatide abil oma kontole sisse

2. samm) looge demo andmebaas

  1. Vasakpoolsel navigeerimisribal klõpsake nuppu Andmebaasid.
  2. Klõpsake Demo.

PostgreSQL Olemas avaldus pgAdmini abil

Samm 3) Tippige päring

Tippige päringuredaktorisse allolev päring:

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

Samm 4) Käivitage päring

Klõpsake nuppu Käivita

PostgreSQL Olemas avaldus pgAdmini abil

See peaks tagastama järgmise:

PostgreSQL Olemas avaldus pgAdmini abil

Koos INSERT avaldusega

Sama tegemiseks pgAdmini kaudu tehke järgmist:

Step 1) Logige sisse oma pgAdmini kontole.

Step 2)

  1. Vasakpoolsel navigeerimisribal klõpsake nuppu Andmebaasid.
  2. Klõpsake Demo.

Avaldus on olemas PostgreSQL kasutades pgAdminit

Step 3) Sisestage päring päringuredaktorisse:

INSERT INTO Price
SELECT id, price
FROM Price2
WHERE EXISTS (SELECT id
              FROM Book
              WHERE Book.id = Price2.id);

Step 4) Klõpsake nuppu Käivita.

Avaldus on olemas PostgreSQL kasutades pgAdminit

Hinnatabel peaks nüüd olema järgmine:

Avaldus on olemas PostgreSQL kasutades pgAdminit

Koos UPDATE avaldusega

Sama tegemiseks pgAdmini kaudu tehke järgmist:

Step 1) Logige sisse oma pgAdmini kontole.

Step 2)

  1. Vasakpoolsel navigeerimisribal klõpsake nuppu Andmebaasid.
  2. Klõpsake Demo.

Avaldus on olemas PostgreSQL kasutades pgAdminit

Step 3) Sisestage päring päringuredaktorisse:

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

Step 4) Klõpsake nuppu Käivita.

PostgreSQL Olemas avaldus pgAdmini abil

Hinnatabel peaks nüüd olema järgmine:

PostgreSQL Olemas avaldus pgAdmini abil

DELETE avaldusega

Sama tegemiseks pgAdmini kaudu tehke järgmist:

Step 1) Logige sisse oma pgAdmini kontole.

Step 2)

  1. Vasakpoolsel navigeerimisribal klõpsake nuppu Andmebaasid.
  2. Klõpsake Demo.

PostgreSQL Olemas avaldus pgAdmini abil

Step 3) Sisestage päring päringuredaktorisse:

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

Step 4) Klõpsake nuppu Käivita.

PostgreSQL Olemas avaldus pgAdmini abil

Hinnatabel peaks nüüd olema järgmine:

PostgreSQL Olemas avaldus pgAdmini abil

kokkuvõte

  • Operaator EXISTS testib, kas alampäringus on rida(d).
  • Seda kasutatakse koos alampäringuga ja väidetavalt on see täidetud, kui alampäring tagastab vähemalt ühe rea.
  • Seda kasutatakse koos käskudega SELECT, UPDATE, INSERT ja DELETE.

Laadige alla selles õpetuses kasutatud andmebaas