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:
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 Olemas koos INSERT-avaldusega
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.
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);
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:
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
- Vasakpoolsel navigeerimisribal klõpsake nuppu Andmebaasid.
- Klõpsake Demo.
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
See peaks tagastama järgmise:
Koos INSERT avaldusega
Sama tegemiseks pgAdmini kaudu tehke järgmist:
Step 1) Logige sisse oma pgAdmini kontole.
Step 2)
- Vasakpoolsel navigeerimisribal klõpsake nuppu 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)
- Vasakpoolsel navigeerimisribal klõpsake nuppu 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)
- Vasakpoolsel navigeerimisribal klõpsake nuppu 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:
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