PostgreSQL SLET Rækker fra Vælg
⚡ Smart opsummering
PostgreSQL DELETE fjerner en eller flere rækker fra en tabel, og parring med en WHERE-klausul målretter kun de poster, der matcher en betingelse, mens udeladelse af WHERE rydder alle rækker i tabellen.

Slet forespørgsel i PostgreSQL
DELETE-sætning in PostgreSQL bruges til at slette en eller flere poster fra en tabel. For kun at slette valgte rækker fra en tabel, PostgreSQL giver dig mulighed for at kombinere DELETE-sætningen med WHERE-klausulen; ellers sletter den alle poster i tabellen.
PostgreSQL Slet forespørgselssyntaks
DELETE-sætningen kan defineres ved hjælp af 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] [, ...] ]
Driftsparametre
Følgende parametre er tilgængelige:
- med-forespørgsel: WITH-klausulen giver dig mulighed for at referere til en eller flere underforespørgsler efter navn i DELETE-forespørgslen.
- tabelnavn: navnet på den tabel, hvorfra poster skal slettes.
- aliasen erstatning for navnet på måltabellen.
- bruger-listeTabeludtryk, der tillader brug af kolonner fra andre tabeller i WHERE-klausulen.
- tilstand(er): valgfrit. Disse er de betingelser, der skal være opfyldt for at poster kan slettes. Hvis dette afsnit ikke angives, slettes alle poster med tabelnavn.
- markørnavn: markøren, der skal bruges i WHERE CURRENT OF-betingelsen. Den sidste række, der blev hentet af denne markør, vil blive slettet.
- output-udtryk: det udtryk, der skal behandles og returneres af DELETE-sætningen, efter hver række er slettet.
- output-navn: det navn, der skal bruges til den returnerede kolonne.
Bemærk, at da DELETE-sætningen sletter hele rækken, behøver du ikke at angive kolonnenavnene.
PostgreSQL Slet forespørgsel med én betingelse
DELETE-sætningen kan bruges med en enkelt betingelse, som er angivet ved hjælp af WHERE-klausulen. Betragt Price-tabellen med følgende data:
Pris:
Lad os slette posten med et id på 4:
DELETE FROM Price WHERE id = 4;
Ovenstående kommando sletter de poster, hvor id'et er 4. Lad os bekræfte, om sletningen var vellykket:
Rækken med et id på 4 er blevet slettet.
Slet forespørgsel med to betingelser
PostgreSQL DELETE-sætningen kan også tage to betingelser. De to betingelser skal forbindes ved hjælp af AND-operatoren. Vi bruger følgende tabel:
Pris:
Overvej eksemplet nedenfor:
DELETE FROM Price WHERE id = 3 AND price = 300;
I ovenstående kommando sletter vi den række, hvor id'et er 3, og prisen er 300. Vi kan nu forespørge tabellen:
SELECT * FROM Price;
Dette returnerer følgende:
Posten med et id på 3 og en pris på 300 blev slettet.
PostgreSQL Slet forespørgsel ved hjælp af EXISTS-betingelsen
Med EXISTS betingelse, kan du gøre DELETE mere kompleks. Nogle gange kan der være behov for at slette poster i én tabel baseret på poster i en anden tabel.
Da FROM-klausulen ikke tillader dig at liste poster fra mere end én tabel, når du udfører en sletning, bliver EXISTS-klausulen meget nyttig. Vi har følgende to tabeller:
Bestil:
Pris:
Vi kan derefter køre følgende forespørgsel:
DELETE FROM Book WHERE EXISTS (SELECT 1 FROM Price WHERE Price.id = Book.id AND price < 250 );
Kommandoen sletter rækker fra bogtabellen, der har et matchende id i pristabellen med en pris under 250.
Bogtabellen er nu som følger:
Posten med et id på 1 blev slettet.
Sådan sletter du en række i PostgreSQL ved hjælp af pgAdmin
De samme sletteforespørgsler kan også køres visuelt via pgAdmin-grænsefladen ved at følge nedenstående trin:
Med én betingelse
Trin 1) Log ind på din pgAdmin-konto. Åbn pgAdmin, og log ind på din konto med dine loginoplysninger.
Trin 2) Opret en demodatabase.
- Klik på Databaser i navigationslinjen til venstre.
- Klik på Demo.
Trin 3) Indtast nedenstående forespørgsel i forespørgselseditoren:
DELETE FROM Price WHERE id = 4;
Trin 4) Klik på knappen Udfør.
Trin 5) Lad os tjekke om rækken blev slettet:
Med to betingelser
Trin 1) Log ind på din pgAdmin-konto.
Trin 2)
- Klik på Databaser i navigationslinjen til venstre.
- Klik på Demo.
Trin 3) Indtast forespørgslen i forespørgselseditoren:
DELETE FROM Price WHERE id = 3 AND price = 300;
Trin 4) Klik på knappen Udfør.
Trin 5) Lad os kontrollere, om sletningen lykkedes:
Bruger EXISTS Condition
Trin 1) Log ind på din pgAdmin-konto.
Trin 2)
- Klik på Databaser i navigationslinjen til venstre.
- Klik på Demo.
Trin 3) Indtast forespørgslen i forespørgselseditoren:
DELETE FROM Book WHERE EXISTS (SELECT 1 FROM Price WHERE Price.id = Book.id AND price < 250 );
Trin 4) Klik på knappen Udfør.
Trin 5) Lad os kontrollere, om sletningen lykkedes:
Download databasen brugt i denne vejledning
















