PostgreSQL Eksisterer med Velg, Sett inn, Oppdater og Slett Eksempel

Hva finnes i PostgreSQL?

Ocuco PostgreSQL Eksisterer operatør tester om en rad(er) finnes i en underspørring. Dette betyr at operatøren brukes sammen med en underspørring. Operatoren Exists sies å ha blitt møtt når minst én rad er funnet i underspørringen. Du kan bruke denne operasjonen sammen med SELECT-, UPDATE-, INSERT- og DELETE-setninger.

Postgres Exists Query Syntax

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 Eksisterer med SELECT Statement

La oss se hvordan du bruker en SELECT-setning med EXISTS-operatoren. Vi har følgende tabeller:

Bok:

PostgreSQL Eksisterer med SELECT Statement

Pris:

PostgreSQL Eksisterer med SELECT Statement

Kjør følgende setning:

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

Dette returnerer følgende:

PostgreSQL Eksisterer med SELECT Statement

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 Eksisterer med INSERT Statement

Vi kan bruke EXISTS-operatoren i en INSERT uttalelse. Vi har følgende 3 tabeller:

Bok:

PostgreSQL Eksisterer med INSERT Statement

Pris:

PostgreSQL Eksisterer med INSERT Statement

Pris 2:

PostgreSQL Eksisterer med INSERT Statement

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:

PostgreSQL Eksisterer med INSERT Statement

Raden med en id på 5 i tabellen kalt Pris2 ble matchet. Denne posten ble deretter satt inn i pristabellen.

Postgres eksisterer med UPDATE-erklæring

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

Postgres eksisterer med UPDATE-erklæring

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.

Postgres eksisterer med SLETT-erklæring

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:

Postgres eksisterer med SLETT-erklæring

Raden med ID 5 er slettet.

PostgreSQL Eksisterer erklæring som bruker pgAdmin

La oss nå se hvordan disse handlingene kan utføres ved å bruke pgAdmin:

Slik bruker du Exists Query i PostgreSQL med SELECT Statement ved å bruke pgAdmin

Nedenfor er trinnene for å bruke Exists-søk i PostgreSQL med SELECT-setning ved å bruke pgAdmin:

Trinn 1) Logg på pgAdmin-kontoen din

Åpne pgAdmin og logg på kontoen din med legitimasjonen din

Trinn 2) Opprett en demodatabase

  1. Fra navigasjonslinjen til venstre klikker du på Databaser.
  2. Klikk på Demo.

PostgreSQL Eksisterer erklæring som bruker pgAdmin

Trinn 3) Skriv inn spørringen

Skriv inn søket nedenfor i spørringsredigeringsprogrammet:

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

Trinn 4) Utfør spørringen

Klikk på Utfør-knappen

PostgreSQL Eksisterer erklæring som bruker pgAdmin

Den skal returnere følgende:

PostgreSQL Eksisterer erklæring som bruker pgAdmin

Med INSERT Statement

For å oppnå det samme gjennom pgAdmin, gjør dette:

Trinn 1) Logg på pgAdmin-kontoen din.

Trinn 2)

  1. Fra navigasjonslinjen til venstre klikker du på Databaser.
  2. Klikk på Demo.

Eksisterer uttalelse i PostgreSQL ved å bruke pgAdmin

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.

Eksisterer uttalelse i PostgreSQL ved å bruke pgAdmin

Pristabellen skal nå være som følger:

Eksisterer uttalelse i PostgreSQL ved å bruke pgAdmin

Med UPDATE-erklæring

For å oppnå det samme gjennom pgAdmin, gjør dette:

Trinn 1) Logg på pgAdmin-kontoen din.

Trinn 2)

  1. Fra navigasjonslinjen til venstre klikker du på Databaser.
  2. Klikk på Demo.

Eksisterer uttalelse i PostgreSQL ved å bruke pgAdmin

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.

PostgreSQL Eksisterer erklæring som bruker pgAdmin

Pristabellen skal nå være som følger:

PostgreSQL Eksisterer erklæring som bruker pgAdmin

Med SLETT-erklæring

For å oppnå det samme gjennom pgAdmin, gjør dette:

Trinn 1) Logg på pgAdmin-kontoen din.

Trinn 2)

  1. Fra navigasjonslinjen til venstre klikker du på Databaser.
  2. Klikk på Demo.

PostgreSQL Eksisterer erklæring som bruker pgAdmin

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.

PostgreSQL Eksisterer erklæring som bruker pgAdmin

Pristabellen skal nå være som følger:

PostgreSQL Eksisterer erklæring som bruker pgAdmin

Sammendrag

  • EXISTS-operatoren tester om en rad(er) finnes i en underspørring.
  • Den brukes med en underspørring og sies å ha blitt oppfylt når underspørringen returnerer minst én rad.
  • Den brukes sammen med SELECT-, UPDATE-, INSERT- og DELETE-setninger.

Last ned databasen som brukes i denne opplæringen