PostgreSQL Slett spørring (slett rader fra utvalg)

Slett spørring i PostgreSQL

Ocuco Slett erklæring in PostgreSQL brukes til å slette enten én eller flere poster fra en tabell. Hvis du ønsker å slette, velg rader fra en tabell PostgreSQL lar deg kombinere DELETE-setningen med WHERE-klausulen ellers vil den slette alle poster.

Postgres Slett spørringssyntaks

DELETE-setningen kan defineres av syntaksen nedenfor:

[ WITH [ RECURSIVE ] with-query [, ...] ]
DELETE FROM [ ONLY ] table-name [ * ] [ [ AS ] alias ]
    [ USING using-list ]
    [ WHERE condition(s) | WHERE CURRENT OF cursor-name]
    [ RETURNING * | output-expression [ [ AS ] output-name] [, ...] ]

Parametre

  • med-spørring: WITH-klausulen lar oss referere til én eller flere underspørringer som skal refereres med navn i DELETE-spørringen.
  • tabellnavn: navnet på tabellen som poster skal slettes fra.
  • alias: dette er en erstatning for navnet på måltabellen.
  • use-list: tabelluttrykk for å tillate at kolonner fra andre tabeller brukes i WHERE-leddet.
  • tilstand(er): valgfri. Det er vilkårene som må være oppfylt for at poster skal slettes. Hvis denne delen ikke er oppgitt, vil alle tabellnavnposter bli slettet.
  • markørnavn: markøren som skal brukes i tilstanden WHERE CURRENT OF. Den sist hentede raden ved denne markøren vil bli slettet.
  • output-uttrykk: uttrykket som skal behandles og returneres av DELETE-setningen etter sletting av hver rad.
  • output-navn: navnet som skal brukes for den returnerte kolonnen.

Merk at siden DELETE-setningen sletter hele raden, trenger du ikke spesifisere kolonnenavnene.

PostgreSQL Slett spørring med én betingelse

DELETE-setningen kan brukes med en enkelt betingelse. Betingelsen settes ved hjelp av WHERE-leddet. Vurder pristabellen med følgende data:

Pris

PostgreSQL Slett spørring med én betingelse

La oss slette posten med en id på 4:

DELETE FROM Price
WHERE id = 4;

Kommandoen ovenfor vil slette postene der ID-en er 4. La oss bekrefte om slettingen var vellykket:

PostgreSQL Slett spørring med én betingelse

Raden med ID 4 er slettet.

Slett spørring med to betingelser

Ocuco PostgreSQL DELETE-setningen kan ha to betingelser. De to betingelsene bør kombineres ved hjelp av OG-operatoren. Vi vil bruke følgende tabell:

Pris:

PostgreSQL Slett spørring med to betingelser

Tenk på eksemplet nedenfor:

DELETE FROM Price
WHERE id = 3Y
AND price = 300;

I kommandoen ovenfor sletter vi raden der id-en er 3, og prisen er 300. Vi kan nå spørre tabellen:

SELECT * FROM Price

Dette returnerer følgende:

PostgreSQL Slett spørring med to betingelser

Posten med id 3 og pris 300 ble slettet.

PostgreSQL Slett spørring ved å bruke Exists Condition

Med EXISTS-tilstanden kan du gjøre DELETE mer kompleks. Noen ganger kan det være behov for å slette poster i én tabell basert på poster i en annen tabell.

Du vil se at FROM-klausulen ikke lar deg liste opp poster fra mer enn én tabell når du utfører sletting, EXISTS-klausulen blir veldig nyttig. Vi har følgende to tabeller:

Bok:

PostgreSQL Slett spørring ved å bruke Exists Condition

Pris:

PostgreSQL Slett spørring ved å bruke Exists Condition

Vi kan da kjøre følgende spørring:

DELETE FROM Book
WHERE EXISTS
  (SELECT 1
    FROM Price
    WHERE Price.id = Book.id
    AND price < 250 );

Kommandoen ovenfor vil slette fra boktabellen der det finnes en post i pristabellen med en id som samsvarer med boktabellen og prisen er mindre enn 250.

Boktabellen er nå som følger:

PostgreSQL Slett spørring ved å bruke Exists Condition

Posten med id 1 ble slettet.

Slik sletter du rad i PostgreSQL ved å bruke pgAdmin

Følgende er trinnene for å slette en rad i PostgreSQL bruker pgAdmin:

Med én betingelse

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

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.

Slett rad inn PostgreSQL

Trinn 3) Skriv inn spørringen

Skriv inn søket nedenfor i spørringsredigeringsprogrammet:

DELETE FROM Price
WHERE id = 4;

Trinn 4) Utfør spørringen

Klikk på Utfør-knappen

Slett rad inn PostgreSQL

Trinn 5) Sjekk om raden er slettet

La oss sjekke om slettingen var vellykket:

Slett rad inn PostgreSQL

Med to betingelser

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.

Slett rad inn PostgreSQL

Trinn 3) Skriv inn søket i spørringsredigeringsprogrammet:

DELETE FROM Price
WHERE id = 3
AND price = 300;

Trinn 4) Klikk på Utfør-knappen.

Slett rad inn PostgreSQL

Trinn 5) La oss sjekke om slettingen var vellykket:

Slett rad inn PostgreSQL

Bruker EXISTS Condition

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.

Slett rad ved å bruke EXISTS Condition

Trinn 3) Skriv inn søket i spørringsredigeringsprogrammet:

DELETE FROM Book
WHERE EXISTS
  (SELECT 1
    FROM Price
    WHERE Price.id = Book.id
    AND price < 250 );

Trinn 4) Klikk på Utfør-knappen.

Slett rad ved å bruke EXISTS Condition

Trinn 5) La oss sjekke om slettingen var vellykket:

Slett rad ved å bruke EXISTS Condition

Sammendrag

  • DELETE-setningen brukes til å slette en eller flere poster fra en tabell.
  • For å slette bare utvalgte rader fra en tabell, kan du kombinere DELETE-setningen med WHERE-leddet.
  • Hvis DELETE-leddet brukes uten WHERE-leddet, sletter det alle poster fra tabellen.
  • table-name parameter lar deg legge til navnet på tabellen som poster skal slettes fra.
  • Vi kan bruke DELETE-setningen med én betingelse, spesifisert ved hjelp av WHERE-klausulen.
  • DELETE-setningen kan også brukes med to betingelser spesifisert i WHERE-leddet. De to betingelsene bør kombineres ved hjelp av OG-operatoren.
  • Ocuco Eksisterer condition kan hjelpe oss med å slette poster fra en tabell basert på postene til en annen tabell.

Last ned databasen som brukes i denne opplæringen