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





















