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





















