PostgreSQL FINNS med SELECT Operator (Exempel)
โก Smart sammanfattning
PostgreSQL EXISTS รคr en boolesk operator som testar om en korrelerad delfrรฅga returnerar nรฅgon rad, vilket gรถr att SELECT-, INSERT-, UPDATE- och DELETE-satser effektivt kan filtrera data efter nรคrvaron eller frรฅnvaron av matchande poster.

Vad som FINNS i PostgreSQL?
Ocuco-landskapet PostgreSQL EXISTS Operatorn testar om en rad(er) finns i en delfrรฅga. Det betyder att operatorn anvรคnds tillsammans med en delfrรฅga. EXISTS-operatorn sรคgs vara uppfylld nรคr minst en rad hittas i delfrรฅgan. Du kan anvรคnda den hรคr operationen tillsammans med SELECT-, UPDATE-, INSERT- och DELETE-satser.
PostgreSQL EXISTS-frรฅgesyntax
Hรคr รคr syntaxen fรถr PostgreSQL EXISTS uttalande:
WHERE EXISTS (subquery);
Ovanstรฅende syntax visar att operatorn EXISTS tar in ett argument, som รคr en underfrรฅga. Underfrรฅgan รคr helt enkelt en SELECT-sats som bรถr bรถrja med en SELECT * istรคllet fรถr en lista med kolumnnamn eller uttryck.
PostgreSQL EXISTS med SELECT-sats
Lรฅt oss se hur man anvรคnder en SELECT-sats med EXISTS-operatorn. Vi har fรถljande tabeller:
Bok:
Pris:
Kรถr fรถljande uttalande:
SELECT * FROM Book WHERE EXISTS (SELECT * FROM Price WHERE Book.id = Price.id);
Detta returnerar fรถljande:
Ovanstรฅende kommando bรถr returnera alla poster i boktabellen vars id matchar id:t fรถr alla poster av underfrรฅgan. Endast ett id matchades. Dรคrfรถr returnerades endast en post.
PostgreSQL EXISTS med INSERT-sats
Vi kan anvรคnda operatorn EXISTS i en INSERT-sats. Vi har fรถljande 3 tabeller:
Bok:
Pris:
Pris2:
Vi kan sedan kรถra fรถljande uttalande:
INSERT INTO Price SELECT id, price FROM Price2 WHERE EXISTS (SELECT id FROM Book WHERE Book.id = Price2.id);
Pristabellen รคr nu som fรถljer:
Raden med id 5 i tabellen med namnet Price2 matchades. Denna post infogades sedan i pristabellen.
PostgreSQL EXISTS med UPDATE-sats
Vi kan anvรคnda operatorn EXISTS i en UPDATE-sats.
Kรถr fรถljande frรฅga:
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 uppdaterar priskolumnen i pristabellen. Vรฅrt mรฅl รคr att priserna pรฅ varor som delar ett id ska vara desamma. Endast en rad matchades, det vill sรคga 5.
Men eftersom priserna รคr lika, det vill sรคga 205, gjordes ingen uppdatering. Om det funnits nรฅgon skillnad hade en uppdatering gjorts.
PostgreSQL EXISTS med DELETE-sats
A PostgreSQL DELETE-satsen kan anvรคnda operatorn EXISTS. Hรคr รคr ett exempel:
DELETE FROM Price WHERE EXISTS (SELECT * FROM Price2 WHERE Price.id = Price2.id);
Pristabellen รคr nu som fรถljer:
Raden med id 5 har tagits bort.
PostgreSQL EXISTS-instruktion med pgAdmin
Utรถver SQL-skalet kan samma EXISTS-frรฅgor kรถras visuellt via pgAdmin-grรคnssnittet. Lรฅt oss nu se hur dessa รฅtgรคrder kan utfรถras med pgAdmin:
Med SELECT-sats
Nedan fรถljer stegen fรถr att anvรคnda en EXISTS-frรฅga i PostgreSQL med en SELECT-sats med hjรคlp av pgAdmin:
Steg 1) Logga in pรฅ ditt pgAdmin-konto. รppna pgAdmin och logga in pรฅ ditt konto med dina inloggningsuppgifter.
Steg 2) Skapa en demodatabas.
- Klicka pรฅ Databaser i navigeringsfรคltet till vรคnster.
- Klicka pรฅ Demo.
Steg 3) Skriv in frรฅgan nedan i frรฅgeredigeraren:
SELECT * FROM Book WHERE EXISTS (SELECT * FROM Price WHERE Book.id = Price.id);
Steg 4) Klicka pรฅ knappen Kรถr.
Det bรถr returnera fรถljande:
Med INSERT uttalande
Fรถr att รฅstadkomma samma sak genom pgAdmin, gรถr sรฅ hรคr:
Steg 1) Logga in pรฅ ditt pgAdmin-konto.
Steg 2)
- Klicka pรฅ Databaser i navigeringsfรคltet till vรคnster.
- Klicka pรฅ Demo.
Steg 3) Skriv in frรฅgan i frรฅgeredigeraren:
INSERT INTO Price SELECT id, price FROM Price2 WHERE EXISTS (SELECT id FROM Book WHERE Book.id = Price2.id);
Steg 4) Klicka pรฅ knappen Kรถr.
Pristabellen bรถr nu vara fรถljande:
Med UPPDATERING
Fรถr att รฅstadkomma samma sak genom pgAdmin, gรถr sรฅ hรคr:
Steg 1) Logga in pรฅ ditt pgAdmin-konto.
Steg 2)
- Klicka pรฅ Databaser i navigeringsfรคltet till vรคnster.
- Klicka pรฅ Demo.
Steg 3) Skriv in frรฅgan i frรฅgeredigeraren:
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);
Steg 4) Klicka pรฅ knappen Kรถr.
Pristabellen bรถr nu vara fรถljande:
Med DELETE Statement
Fรถr att รฅstadkomma samma sak genom pgAdmin, gรถr sรฅ hรคr:
Steg 1) Logga in pรฅ ditt pgAdmin-konto.
Steg 2)
- Klicka pรฅ Databaser i navigeringsfรคltet till vรคnster.
- Klicka pรฅ Demo.
Steg 3) Skriv in frรฅgan i frรฅgeredigeraren:
DELETE FROM Price WHERE EXISTS (SELECT * FROM Price2 WHERE Price.id = Price2.id);
Steg 4) Klicka pรฅ knappen Kรถr.
Pristabellen bรถr nu vara fรถljande:
Ladda ner den databas som anvรคnds i denna handledning





















