PostgreSQL Eksisterer med Velg, Sett inn, Oppdater og Slett Eksempel
Hva finnes i PostgreSQL?
Ocuco PostgreSQL Eksisterer operatør tester om en rad(er) finnes i en underspørring. Dette betyr at operatøren brukes sammen med en underspørring. Operatoren Exists sies å ha blitt møtt når minst én rad er funnet i underspørringen. Du kan bruke denne operasjonen sammen med SELECT-, UPDATE-, INSERT- og DELETE-setninger.
Postgres Exists Query Syntax
Her er syntaksen for PostgreSQL EKSISTERER uttalelse:
WHERE EXISTS (subquery);
Syntaksen ovenfor viser at EXISTS-operatoren tar inn et argument, som er en underspørring. Underspørringen er ganske enkelt en SELECT-setning som skal begynne med en SELECT * i stedet for en liste over kolonnenavn eller uttrykk.
PostgreSQL Eksisterer med SELECT Statement
La oss se hvordan du bruker en SELECT-setning med EXISTS-operatoren. Vi har følgende tabeller:
Bok:
Pris:
Kjør følgende setning:
SELECT * FROM Book WHERE EXISTS (SELECT * FROM Price WHERE Book.id = Price.id);
Dette returnerer følgende:
Kommandoen ovenfor skal returnere alle poster i boktabellen hvis ID samsvarer med IDen til alle poster av underspørringen. Bare én id ble matchet. Derfor ble bare én post returnert.
PostgreSQL Eksisterer med INSERT Statement
Vi kan bruke EXISTS-operatoren i en INSERT uttalelse. Vi har følgende 3 tabeller:
Bok:
Pris:
Pris 2:
Vi kan da kjøre følgende setning:
INSERT INTO Price SELECT id, price FROM Price2 WHERE EXISTS (SELECT id FROM Book WHERE Book.id = Price2.id);
Pristabellen er nå som følger:
Raden med en id på 5 i tabellen kalt Pris2 ble matchet. Denne posten ble deretter satt inn i pristabellen.
Postgres eksisterer med UPDATE-erklæring
Vi kan bruke EXISTS-operatoren i en UPDATE-setning.
Kjør følgende spørring:
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);
Vi oppdaterer priskolonnen i Pristabellen. Vårt mål er at prisene på varer som deler en id skal være de samme. Bare én rad ble matchet, det vil si 5.
Men siden prisene er like, det vil si 205, ble det ikke gjort noen oppdatering. Hvis det var en forskjell, ville en oppdatering blitt gjort.
Postgres eksisterer med SLETT-erklæring
A PostgreSQL DELETE-setningen kan bruke EXISTS-operatoren. Her er et eksempel:
DELETE FROM Price WHERE EXISTS (SELECT * FROM Price2 WHERE Price.id = Price2.id);
Pristabellen er nå som følger:
Raden med ID 5 er slettet.
PostgreSQL Eksisterer erklæring som bruker pgAdmin
La oss nå se hvordan disse handlingene kan utføres ved å bruke pgAdmin:
Slik bruker du Exists Query i PostgreSQL med SELECT Statement ved å bruke pgAdmin
Nedenfor er trinnene for å bruke Exists-søk i PostgreSQL med SELECT-setning ved å bruke pgAdmin:
Trinn 1) Logg på pgAdmin-kontoen din
Åpne pgAdmin og logg på kontoen din med legitimasjonen din
Trinn 2) Opprett en demodatabase
- Fra navigasjonslinjen til venstre klikker du på Databaser.
- Klikk på Demo.
Trinn 3) Skriv inn spørringen
Skriv inn søket nedenfor i spørringsredigeringsprogrammet:
SELECT * FROM Book WHERE EXISTS (SELECT * FROM Price WHERE Book.id = Price.id);
Trinn 4) Utfør spørringen
Klikk på Utfør-knappen
Den skal returnere følgende:
Med INSERT Statement
For å oppnå det samme gjennom pgAdmin, gjør dette:
Trinn 1) Logg på pgAdmin-kontoen din.
Trinn 2)
- Fra navigasjonslinjen til venstre klikker du på Databaser.
- Klikk på Demo.
Trinn 3) Skriv inn søket i spørringsredigeringsprogrammet:
INSERT INTO Price SELECT id, price FROM Price2 WHERE EXISTS (SELECT id FROM Book WHERE Book.id = Price2.id);
Trinn 4) Klikk på Utfør-knappen.
Pristabellen skal nå være som følger:
Med UPDATE-erklæring
For å oppnå det samme gjennom pgAdmin, gjør dette:
Trinn 1) Logg på pgAdmin-kontoen din.
Trinn 2)
- Fra navigasjonslinjen til venstre klikker du på Databaser.
- Klikk på Demo.
Trinn 3) Skriv inn søket i spørringsredigeringsprogrammet:
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);
Trinn 4) Klikk på Utfør-knappen.
Pristabellen skal nå være som følger:
Med SLETT-erklæring
For å oppnå det samme gjennom pgAdmin, gjør dette:
Trinn 1) Logg på pgAdmin-kontoen din.
Trinn 2)
- Fra navigasjonslinjen til venstre klikker du på Databaser.
- Klikk på Demo.
Trinn 3) Skriv inn søket i spørringsredigeringsprogrammet:
DELETE FROM Price WHERE EXISTS (SELECT * FROM Price2 WHERE Price.id = Price2.id);
Trinn 4) Klikk på Utfør-knappen.
Pristabellen skal nå være som følger:
Sammendrag
- EXISTS-operatoren tester om en rad(er) finnes i en underspørring.
- Den brukes med en underspørring og sies å ha blitt oppfylt når underspørringen returnerer minst én rad.
- Den brukes sammen med SELECT-, UPDATE-, INSERT- og DELETE-setninger.
Last ned databasen som brukes i denne opplæringen