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] [, ...] ]

parametre

  • 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 folloenwing data:

Pris

PostgreSQL Slet forespørgsel med én betingelse

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:

PostgreSQL Slet forespørgsel med én betingelse

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 operator. Vi vil bruge folloenwing bord:

Pris:

PostgreSQL Slet forespørgsel med to betingelser

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 folloenwing:

PostgreSQL Slet forespørgsel med to betingelser

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 complex. 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 folloenwing to borde:

Bestil:

PostgreSQL Slet forespørgsel ved hjælp af eksisterende tilstand

Pris:

PostgreSQL Slet forespørgsel ved hjælp af eksisterende tilstand

Så kan vi køre folloenwing 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:

PostgreSQL Slet forespørgsel ved hjælp af eksisterende tilstand

Posten med et id på 1 blev slettet.

Sådan sletter du række i PostgreSQL ved hjælp af pgAdmin

Following 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

  1. Fra navigationslinjen til venstre - Klik på Databaser.
  2. Klik på Demo.

Slet række ind PostgreSQL

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

Slet række ind PostgreSQL

Trin 5) Tjek, om rækken er slettet

Lad os kontrollere, om sletningen lykkedes:

Slet række ind PostgreSQL

Med to betingelser

For at opnå det samme gennem pgAdmin, gør dette:

Trin 1) Log ind på din pgAdmin-konto.

Trin 2)

  1. Fra navigationslinjen til venstre - Klik på Databaser.
  2. Klik på Demo.

Slet række ind PostgreSQL

Trin 3) Indtast forespørgslen i forespørgselseditoren:

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

Trin 4) Klik på knappen Udfør.

Slet række ind PostgreSQL

Trin 5) Lad os kontrollere, om sletningen lykkedes:

Slet række ind PostgreSQL

Bruger EXISTS Condition

For at opnå det samme gennem pgAdmin, gør dette:

Trin 1) Log ind på din pgAdmin-konto.

Trin 2)

  1. Fra navigationslinjen til venstre - Klik på Databaser.
  2. Klik på Demo.

Slet række ved hjælp af EXISTS Condition

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.

Slet række ved hjælp af EXISTS Condition

Trin 5) Lad os kontrollere, om sletningen lykkedes:

Slet række ved hjælp af EXISTS Condition

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 operathor.
  • EXISTS betingelse kan hjælpe os med at slette poster fra en tabel baseret på posterne i en anden tabel.

Download databasen brugt i denne vejledning