PostgreSQL Finns med Välj, Infoga, Uppdatera & Ta bort Exempel

Vad finns i PostgreSQL?

Ocuco-landskapet PostgreSQL EXISTS operatorn testar om en rad(er) finns i en underfråga. Detta innebär att operatorn används tillsammans med en underfråga. Operatorn Exists sägs ha uppfyllts när minst en rad hittas i underfrågan. Du kan använda denna operation tillsammans med SELECT-, UPDATE-, INSERT- och DELETE-satser.

Postgres existerar 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 Finns med SELECT Statement

Låt oss se hur man använder en SELECT-sats med operatorn EXISTS. Vi har följande tabeller:

Bok:

PostgreSQL Finns med SELECT Statement

Pris:

PostgreSQL Finns med SELECT Statement

Kör följande uttalande:

SELECT *
FROM Book
WHERE EXISTS (SELECT *
              FROM Price
              WHERE Book.id = Price.id);

Detta returnerar följande:

PostgreSQL Finns med SELECT Statement

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 Finns med INSERT-sats

Vi kan använda operatorn EXISTS i en INSERT-sats. Vi har följande 3 tabeller:

Bok:

PostgreSQL Finns med INSERT-sats

Pris:

PostgreSQL Finns med INSERT-sats

Pris2:

PostgreSQL Finns med INSERT-sats

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:

PostgreSQL Finns med INSERT-sats

Raden med id 5 i tabellen med namnet Price2 matchades. Denna post infogades sedan i pristabellen.

Postgres finns med UPPDATERING

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);

Postgres finns med UPPDATERING

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.

Postgres finns med DELETE-deklaration

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:

Postgres finns med DELETE-deklaration

Raden med id 5 har tagits bort.

PostgreSQL Finns påstående med pgAdmin

Låt oss nu se hur dessa åtgärder kan utföras med pgAdmin:

Hur man använder Exists Query i PostgreSQL med SELECT Statement med pgAdmin

Nedan följer stegen för att använda Exists-frågan i PostgreSQL med SELECT-sats med pgAdmin:

Steg 1) Logga in på ditt pgAdmin-konto

Öppna pgAdmin och logga in på ditt konto med dina referenser

Steg 2) Skapa en demodatabas

  1. Klicka på Databaser i navigeringsfältet till vänster.
  2. Klicka på Demo.

PostgreSQL Finns påstående med pgAdmin

Steg 3) Skriv frågan

Skriv in frågan nedan i frågeredigeraren:

SELECT *
FROM Book
WHERE EXISTS (SELECT *
              FROM Price
              WHERE Book.id = Price.id);

Steg 4) Kör frågan

Klicka på knappen Kör

PostgreSQL Finns påstående med pgAdmin

Det bör returnera följande:

PostgreSQL Finns påstående med pgAdmin

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)

  1. Klicka på Databaser i navigeringsfältet till vänster.
  2. Klicka på Demo.

Finns uttalande i PostgreSQL med pgAdmin

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.

Finns uttalande i PostgreSQL med pgAdmin

Pristabellen bör nu vara följande:

Finns uttalande i PostgreSQL med pgAdmin

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)

  1. Klicka på Databaser i navigeringsfältet till vänster.
  2. Klicka på Demo.

Finns uttalande i PostgreSQL med pgAdmin

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.

PostgreSQL Finns påstående med pgAdmin

Pristabellen bör nu vara följande:

PostgreSQL Finns påstående med pgAdmin

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)

  1. Klicka på Databaser i navigeringsfältet till vänster.
  2. Klicka på Demo.

PostgreSQL Finns påstående med pgAdmin

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.

PostgreSQL Finns påstående med pgAdmin

Pristabellen bör nu vara följande:

PostgreSQL Finns påstående med pgAdmin

Sammanfattning

  • Operatören EXISTS testar om en rad(er) finns i en underfråga.
  • Den används med en underfråga och sägs ha uppfyllts när underfrågan returnerar minst en rad.
  • Den används tillsammans med SELECT-, UPDATE-, INSERT- och DELETE-satser.

Ladda ner den databas som används i denna handledning