PostgreSQL EXISTS koos SELECT-iga Operator (näide)
⚡ Nutikas kokkuvõte
PostgreSQL EXISTS on Boole'i operaator, mis kontrollib, kas korreleeritud alampäring tagastab mõne rea, lastes SELECT-, INSERT-, UPDATE- ja DELETE-lausetel andmeid tõhusalt vastavate kirjete olemasolu või puudumise järgi filtreerida.

Mis on OLEMASOLEVAS PostgreSQL?
. PostgreSQL OLEMAS operaator kontrollib, kas alampäringus on rida(d). See tähendab, et operaatorit kasutatakse koos alampäringuga. Operaatori EXISTS tingimus on täidetud, kui alampäringus on leitud vähemalt üks rida. Seda toimingut saab kasutada koos SELECT, UPDATE, INSERT ja DELETE lausetega.
PostgreSQL EXISTS 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 EXISTS koos SELECT-lausega
Vaatame, kuidas kasutada SELECT-lauset koos EXISTS-operaatoriga. Meil on järgmised tabelid:
Raamat:
Hind:
Käivitage järgmine avaldus:
SELECT * FROM Book WHERE EXISTS (SELECT * FROM Price WHERE Book.id = Price.id);
See tagastab järgmise:
Ü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 EXISTS koos INSERT-lausega
Saame kasutada operaatorit EXISTS INSERT avaldus. Meil on järgmised 3 tabelit:
Raamat:
Hind:
Hind2:
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:
Tabeli Hind5 rida ID-ga 2 sobitati. See rekord sisestati seejärel hinnatabelisse.
PostgreSQL EXISTS 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);
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.
PostgreSQL EXISTS koos DELETE-lausega
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:
Rida, mille ID on 5, on kustutatud.
PostgreSQL EXISTS-lause pgAdmini abil
Lisaks SQL-kestale saab samu EXISTS-päringuid visuaalselt käivitada ka pgAdmini liidese kaudu. Vaatame nüüd, kuidas neid toiminguid pgAdmini abil teha saab:
SELECT-lause abil
Allpool on toodud sammud EXISTS päringu kasutamiseks PostgreSQL SELECT-lause abil pgAdmini abil:
Step 1) Logige sisse oma pgAdmini kontole. Avage pgAdmin ja logige oma kontole sisse oma sisselogimisandmetega.
Step 2) Loo demo andmebaas.
- Klõpsake vasakpoolsel navigeerimisribal valikul Andmebaasid.
- Klõpsake Demo.
Step 3) Tippige päringuredaktorisse allolev päring:
SELECT * FROM Book WHERE EXISTS (SELECT * FROM Price WHERE Book.id = Price.id);
Step 4) Klõpsake nuppu Käivita.
See peaks tagastama järgmise:
Koos INSERT avaldusega
Sama tegemiseks pgAdmini kaudu tehke järgmist:
Step 1) Logige sisse oma pgAdmini kontole.
Step 2)
- Klõpsake vasakpoolsel navigeerimisribal valikul Andmebaasid.
- Klõpsake Demo.
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.
Hinnatabel peaks nüüd olema järgmine:
Koos UPDATE avaldusega
Sama tegemiseks pgAdmini kaudu tehke järgmist:
Step 1) Logige sisse oma pgAdmini kontole.
Step 2)
- Klõpsake vasakpoolsel navigeerimisribal valikul Andmebaasid.
- Klõpsake Demo.
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.
Hinnatabel peaks nüüd olema järgmine:
DELETE avaldusega
Sama tegemiseks pgAdmini kaudu tehke järgmist:
Step 1) Logige sisse oma pgAdmini kontole.
Step 2)
- Klõpsake vasakpoolsel navigeerimisribal valikul Andmebaasid.
- Klõpsake Demo.
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.
Hinnatabel peaks nüüd olema järgmine:
Laadige alla selles õpetuses kasutatud andmebaas





















