PostgreSQL Slet forespørgsel (Slet rækker fra udvalgte)
Slet forespørgsel i PostgreSQL
Slet erklæring in PostgreSQL bruges til at slette enten en eller flere poster fra en tabel. Hvis du vil slette, skal du vælge rækker fra en tabel PostgreSQL giver dig mulighed for at kombinere DELETE-sætningen med WHERE-sætningen, ellers vil den slette alle poster.
Postgres Slet forespørgselssyntaks
DELETE-sætningen kan defineres af nedenstående syntaks:
[ 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
- med-forespørgsel: WITH-klausulen giver os mulighed for at henvise til en eller flere underforespørgsler, der skal refereres ved navn i DELETE-forespørgslen.
- tabelnavn: navnet på den tabel, hvorfra poster skal slettes.
- alias: dette er en erstatning for navnet på måltabellen.
- use-list: tabeludtryk for at tillade, at kolonner fra andre tabeller bruges i WHERE-sætning.
- betingelser): valgfri. Det er de betingelser, der skal være opfyldt, for at optegnelser kan slettes. Hvis denne sektion ikke er angivet, vil alle tabelnavne-poster blive slettet.
- markørnavn: markøren, der skal bruges i tilstanden WHERE CURRENT OF. Den sidst hentede række ved denne markør vil blive slettet.
- output-udtryk: det udtryk, der skal behandles og returneres af DELETE-sætningen efter sletningen af hver række.
- 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. Betingelsen indstilles ved hjælp af WHERE-sætningen. Overvej pristabellen med følgende data:
Pris
Lad os slette posten med et id på 4:
DELETE FROM Price WHERE id = 4;
Ovenstående kommando vil slette de poster, hvor id'et er 4. Lad os bekræfte, om sletningen lykkedes:
Rækken med et id på 4 er blevet slettet.
Slet forespørgsel med to betingelser
PostgreSQL DELETE-sætningen kan have to betingelser. De to betingelser skal forbindes ved hjælp af AND-operatoren. Vi vil bruge følgende tabel:
Pris:
Overvej eksemplet nedenfor:
DELETE FROM Price WHERE id = 3Y AND price = 300;
I ovenstående kommando sletter vi rækken, hvor id'et er 3, og prisen er 300. Vi kan nu forespørge i 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 eksisterende tilstand
Med EXISTS-tilstanden 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.
Du vil se, at FROM-klausulen ikke tillader dig at liste poster fra mere end én tabel, når du udfører sletning, EXISTS-klausulen bliver 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 );
Ovenstående kommando vil slette fra bogtabellen, hvor der findes en post i pristabellen med et id, der matcher bogtabellen, og prisen er mindre end 250.
Bogtabellen er nu som følger:
Posten med et id på 1 blev slettet.
Sådan sletter du række i PostgreSQL ved hjælp af pgAdmin
Følgende er trinene til at slette en række i PostgreSQL ved hjælp af pgAdmin:
Med én betingelse
For at opnå det samme gennem pgAdmin, gør dette:
Trin 1) Log ind på din pgAdmin-konto
Åbn pgAdmin og log ind på din konto ved hjælp af dine legitimationsoplysninger
Trin 2) Opret en demodatabase
- Fra navigationslinjen til venstre - Klik på Databaser.
- Klik på Demo.
Trin 3) Indtast forespørgslen
Indtast nedenstående forespørgsel i forespørgselseditoren:
DELETE FROM Price WHERE id = 4;
Trin 4) Udfør forespørgslen
Klik på knappen Udfør
Trin 5) Tjek, om rækken er slettet
Lad os kontrollere, om sletningen lykkedes:
Med to betingelser
For at opnå det samme gennem pgAdmin, gør dette:
Trin 1) Log ind på din pgAdmin-konto.
Trin 2)
- Fra navigationslinjen til venstre - Klik på Databaser.
- 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
For at opnå det samme gennem pgAdmin, gør dette:
Trin 1) Log ind på din pgAdmin-konto.
Trin 2)
- Fra navigationslinjen til venstre - Klik på Databaser.
- 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:
Resumé
- DELETE-sætningen bruges til at slette en eller flere poster fra en tabel.
- For kun at slette udvalgte rækker fra en tabel, kan du kombinere DELETE-sætningen med WHERE-sætningen.
- Hvis DELETE-udtrykket bruges uden WHERE-udtrykket, sletter det alle poster fra tabellen.
- tabel-navn parameter giver dig mulighed for at tilføje navnet på den tabel, hvorfra poster skal slettes.
- Vi kan bruge DELETE-sætningen med én betingelse, specificeret ved hjælp af WHERE-sætningen.
- DELETE-sætningen kan også bruges med to betingelser specificeret i WHERE-sætningen. De to betingelser skal forbindes ved hjælp af AND-operatoren.
- EXISTS betingelse kan hjælpe os med at slette poster fra en tabel baseret på posterne i en anden tabel.
















