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

Oppsummer dette innlegget med: