PostgreSQL eksisteerib koos näidetega

Lang L: none (table-of-contents):

Anonim

Mis on PostgreSQL olemas?

Operaator EXISTS testib, kas alampäringus on rida (d) olemas. See tähendab, et operaatorit kasutatakse koos alampäringuga. Operaatori Olemasolemine on täidetud, kui alampäringust leitakse vähemalt üks rida. Seda toimingut saate kasutada koos lausetega SELECT, UPDATE, INSERT ja DELETE.

Selles PostgreSQL-i õpetuses saate teada järgmist:

  • Süntaks
  • SELECT-avaldusega
  • Koos avaldusega INSERT
  • Uuendatud avaldusega
  • Koos avaldusega KUSTUTA
  • Koos pgAdminiga

Süntaks

Siin on lause PostgreSQL EXISTS süntaks:

WHERE EXISTS (subquery);

Ülaltoodud süntaks näitab, et operaator EXISTS võtab sisse argumendi, mis on alampäring. Alampäring on lihtsalt SELECT-lause, mis peaks veergude nimede või avaldiste loendi asemel algama SELECT * -ga.

SELECT-avaldusega

Vaatame, kuidas kasutada käsku EXISTS operaatoriga SELECT. Meil on järgmised tabelid:

Raamat:

Hind:

Käivitage järgmine lause:

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

See tagastab järgmise:

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

Koos avaldusega INSERT

Operaatorit EXISTS saame kasutada INSERT-lauses. Meil on järgmised 3 tabelit:

Raamat:

Hind:

Hind2:

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

INSERT INTO PriceSELECT id, priceFROM Price2WHERE EXISTS (SELECT idFROM BookWHERE Book.id = Price2.id);

Hindade tabel on nüüd järgmine:

Rida ID-ga 5 tabelis nimega Price2 sobitati. Seejärel lisati see kirje tabelisse Hind.

Uuendatud avaldusega

Operaatorit EXISTS saame kasutada käsku UPDATE.

Käivitage järgmine päring:

UPDATE PriceSET price = (SELECT priceFROM Price2WHERE Price2.id = Price.id)WHERE EXISTS (SELECT id, priceFROM Price2WHERE Price2.id = Price.id);

Uuendame tabeli Hind hinnaveergu. Meie eesmärk on, et ID-d jagavate esemete hinnad oleksid samad. Sobitati ainult üks rida, see tähendab 5.

Kuid kuna hinnad on võrdsed, see tähendab 205, ei tehtud värskendusi. Kui oleks olnud erinevusi, oleks värskendus tehtud.

Koos avaldusega KUSTUTA

PostgreSQL DELETE-lause võib kasutada operaatorit OLEMAS. Siin on näide:

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

Hindade tabel on nüüd järgmine:

Rida ID-ga 5 on kustutatud.

Koos pgAdminiga

Vaatame nüüd, kuidas neid toiminguid saab teha pgAdmini abil.

SELECT-avaldusega

Sama saavutamiseks pgAdmini kaudu tehke seda:

Samm 1) Logige sisse oma pgAdmini kontole.

2. samm)

  1. Vasakul navigeerimisribal klõpsake käsku Andmebaasid.
  2. Klõpsake valikul Demo.

Samm 3) Sisestage päring päringiredaktorisse:

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

Samm 4) Klõpsake nuppu Execute.

See peaks tagastama järgmise:

Koos avaldusega INSERT

Sama saavutamiseks pgAdmini kaudu tehke seda:

Samm 1) Logige sisse oma pgAdmini kontole.

2. samm)

  1. Vasakul navigeerimisribal klõpsake käsku Andmebaasid.
  2. Klõpsake valikul Demo.

Samm 3) Sisestage päring päringiredaktorisse:

INSERT INTO PriceSELECT id, priceFROM Price2WHERE EXISTS (SELECT idFROM BookWHERE Book.id = Price2.id);

Samm 4) Klõpsake nuppu Execute.

Hindade tabel peaks nüüd olema järgmine:

Uuendatud avaldusega

Sama saavutamiseks pgAdmini kaudu tehke seda:

Samm 1) Logige sisse oma pgAdmini kontole.

2. samm)

  1. Vasakul navigeerimisribal klõpsake käsku Andmebaasid.
  2. Klõpsake valikul Demo.

Samm 3) Sisestage päring päringiredaktorisse:

UPDATE PriceSET price = (SELECT priceFROM Price2WHERE Price2.id = Price.id)WHERE EXISTS (SELECT id, priceFROM Price2WHERE Price2.id = Price.id);

Samm 4) Klõpsake nuppu Execute.

Hindade tabel peaks nüüd olema järgmine:

Koos avaldusega KUSTUTA

Sama saavutamiseks pgAdmini kaudu tehke seda:

Samm 1) Logige sisse oma pgAdmini kontole.

2. samm)

  1. Vasakul navigeerimisribal klõpsake käsku Andmebaasid.
  2. Klõpsake valikul Demo.

Samm 3) Sisestage päring päringiredaktorisse:

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

Samm 4) Klõpsake nuppu Execute.

Hindade tabel peaks nüüd olema järgmine:

Kokkuvõte

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

Laadige alla selles õpetuses kasutatud andmebaas