PostgreSQL EKSISTERER med SELECT Operator (Eksempel)
⚡ Smart oppsummering
PostgreSQL EXISTS er en boolsk operator som tester om en korrelert delspørring returnerer en rad, slik at SELECT-, INSERT-, UPDATE- og DELETE-setninger effektivt kan filtrere data etter tilstedeværelse eller fravær av samsvarende poster.
Hva finnes i PostgreSQL?
Ocuco PostgreSQL Eksisterer Operatoren tester om en rad(er) finnes i en delspørring. Dette betyr at operatoren brukes sammen med en delspørring. EXISTS-operatoren sies å være oppfylt når minst én rad finnes i delspørringen. Du kan bruke denne operasjonen sammen med SELECT-, UPDATE-, INSERT- og DELETE-setninger.
PostgreSQL EXISTS-spørresyntaks
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 EXISTS med SELECT-setning
La oss se hvordan vi 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 EXISTS med INSERT-setning
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.
PostgreSQL EXISTS med UPDATE-setning
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.
PostgreSQL EXISTS med DELETE-setning
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 EXISTS-setning ved bruk av pgAdmin
Utover SQL-skallet kan de samme EXISTS-spørringene utføres visuelt gjennom pgAdmin-grensesnittet. La oss nå se hvordan disse handlingene kan utføres ved hjelp av pgAdmin:
Med SELECT-setning
Nedenfor finner du trinnene for å bruke en EXISTS-spørring i PostgreSQL med en SELECT-setning ved bruk av pgAdmin:
Trinn 1) Logg inn på pgAdmin-kontoen din. Åpne pgAdmin og logg inn på kontoen din med påloggingsinformasjonen din.
Trinn 2) Opprett en demodatabase.
- Fra navigasjonslinjen til venstre klikker du på Databaser.
- Klikk på Demo.
Trinn 3) Skriv inn søket nedenfor i spørringsredigeringsprogrammet:
SELECT * FROM Book WHERE EXISTS (SELECT * FROM Price WHERE Book.id = Price.id);
Trinn 4) 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:
Last ned databasen som brukes i denne opplæringen






















