PostgreSQL Ștergeți interogarea (Ștergeți rândurile din Selectare)

Ștergeți interogarea în PostgreSQL

Ștergeți declarația in PostgreSQL este folosit pentru a șterge una sau mai multe înregistrări dintr-un tabel. Dacă doriți să ștergeți anumite rânduri dintr-un tabel PostgreSQL vă permite să combinați instrucțiunea DELETE cu clauza WHERE, altfel va șterge toate înregistrările.

Sintaxa de interogare Postgres Delete

Instrucțiunea DELETE poate fi definită prin sintaxa de mai jos:

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

parametrii

  • cu-interogare: clauza WITH ne permite să facem referire la una sau mai multe subinterogări care să fie referite după nume în interogarea DELETE.
  • nume-tabel: numele tabelului din care urmează să fie șterse înregistrările.
  • alias: acesta este un substitut pentru numele tabelului țintă.
  • using-list: expresii de tabel pentru a permite coloanelor din alte tabele să fie folosite în clauza WHERE.
  • stare(e): opțional. Sunt condițiile care trebuie îndeplinite pentru ca înregistrările să fie șterse. Dacă această secțiune nu este furnizată, toate înregistrările de nume de tabel vor fi șterse.
  • cursor-nume: cursorul care trebuie utilizat în condiția WHERE CURRENT OF. Ultimul rând preluat de acest cursor va fi șters.
  • ieșire-expresie: expresia care trebuie procesată și returnată de instrucțiunea DELETE după ștergerea fiecărui rând.
  • nume-ieșire: numele care va fi folosit pentru coloana returnată.

Rețineți că, deoarece instrucțiunea DELETE șterge întregul rând, nu este necesar să specificați numele coloanelor.

PostgreSQL Ștergeți interogarea cu o condiție

Instrucțiunea DELETE poate fi utilizată cu o singură condiție. Condiția este stabilită folosind clauza WHERE. Luați în considerare tabelul de prețuri cu următoarele date:

Preț

PostgreSQL Ștergeți interogarea cu o condiție

Să ștergem înregistrarea cu un id de 4:

DELETE FROM Price
WHERE id = 4;

Comanda de mai sus va șterge înregistrările în care id-ul este 4. Să confirmăm dacă ștergerea a avut succes:

PostgreSQL Ștergeți interogarea cu o condiție

Rândul cu ID-ul 4 a fost șters.

Ștergeți interogarea cu două condiții

PostgreSQL Declarația DELETE poate avea două condiții. Cele două condiții ar trebui unite folosind operatorul AND. Vom folosi următorul tabel:

Preț:

PostgreSQL Ștergeți interogarea cu două condiții

Luați în considerare exemplul de mai jos:

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

În comanda de mai sus, ștergem rândul în care id-ul este 3 și prețul este 300. Acum putem interoga tabelul:

SELECT * FROM Price

Aceasta returnează următoarele:

PostgreSQL Ștergeți interogarea cu două condiții

Înregistrarea cu un id de 3 și un preț de 300 a fost șters.

PostgreSQL Ștergeți interogarea folosind Condiția existentă

Cu condiția EXISTS, puteți face ȘTERGEREA mai complexă. Uneori, poate fi necesară ștergerea înregistrărilor dintr-un tabel pe baza înregistrărilor dintr-un alt tabel.

Veți vedea că clauza FROM nu vă permite să enumerați înregistrările din mai mult de un tabel atunci când efectuați ștergerea, clauza EXISTS devine foarte utilă. Avem următoarele două tabele:

Carte:

PostgreSQL Ștergeți interogarea folosind Condiția existentă

Preț:

PostgreSQL Ștergeți interogarea folosind Condiția existentă

Apoi putem rula următoarea interogare:

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

Comanda de mai sus va șterge din tabelul Book acolo unde există o înregistrare în tabelul Price cu un id care se potrivește cu cel al tabelului Book și prețul fiind mai mic de 250.

Tabelul Cărții este acum după cum urmează:

PostgreSQL Ștergeți interogarea folosind Condiția existentă

Înregistrarea cu id-ul 1 a fost ștearsă.

Cum se șterge un rând în PostgreSQL folosind pgAdmin

Următorii sunt pașii pentru a șterge un rând în PostgreSQL folosind pgAdmin:

Cu o condiție

Pentru a realiza același lucru prin pgAdmin, procedați astfel:

Pasul 1) Conectați-vă la contul dvs. pgAdmin

Deschideți pgAdmin și conectați-vă la contul dvs. folosind datele de conectare

Pasul 2) Creați o bază de date demonstrativă

  1. Din bara de navigare din stânga, faceți clic pe Baze de date.
  2. Faceți clic pe Demo.

Ștergeți rândul în PostgreSQL

Pasul 3) Introduceți interogarea

Introduceți interogarea de mai jos în editorul de interogări:

DELETE FROM Price
WHERE id = 4;

Pasul 4) Executați interogarea

Faceți clic pe butonul Execute

Ștergeți rândul în PostgreSQL

Pasul 5) Verificați dacă rândul este șters

Să verificăm dacă ștergerea a avut succes:

Ștergeți rândul în PostgreSQL

Cu două condiții

Pentru a realiza același lucru prin pgAdmin, procedați astfel:

Pas 1) Conectați-vă la contul dvs. pgAdmin.

Pas 2)

  1. Din bara de navigare din stânga, faceți clic pe Baze de date.
  2. Faceți clic pe Demo.

Ștergeți rândul în PostgreSQL

Pas 3) Introduceți interogarea în editorul de interogări:

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

Pas 4) Faceți clic pe butonul Execute.

Ștergeți rândul în PostgreSQL

Pas 5) Să verificăm dacă ștergerea a avut succes:

Ștergeți rândul în PostgreSQL

Utilizarea EXISTS Condition

Pentru a realiza același lucru prin pgAdmin, procedați astfel:

Pas 1) Conectați-vă la contul dvs. pgAdmin.

Pas 2)

  1. Din bara de navigare din stânga, faceți clic pe Baze de date.
  2. Faceți clic pe Demo.

Ștergeți rândul utilizând Condiția EXISTS

Pas 3) Introduceți interogarea în editorul de interogări:

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

Pas 4) Faceți clic pe butonul Execute.

Ștergeți rândul utilizând Condiția EXISTS

Pas 5) Să verificăm dacă ștergerea a avut succes:

Ștergeți rândul utilizând Condiția EXISTS

Rezumat

  • Instrucțiunea DELETE este utilizată pentru ștergerea uneia sau mai multor înregistrări dintr-un tabel.
  • Pentru a șterge doar rânduri selectate dintr-un tabel, puteți combina instrucțiunea DELETE cu clauza WHERE.
  • Dacă clauza DELETE este folosită fără clauza WHERE, aceasta șterge toate înregistrările din tabel.
  • parametrul table-name vă permite să adăugați numele tabelului din care urmează să fie șterse înregistrările.
  • Putem folosi instrucțiunea DELETE cu o condiție, specificată folosind clauza WHERE.
  • Instrucțiunea DELETE poate fi folosită și cu două condiții specificate în clauza WHERE. Cele două condiții ar trebui unite folosind operatorul AND.
  • EXISTĂ condiția ne poate ajuta să ștergem înregistrările dintr-un tabel pe baza înregistrărilor altui tabel.

Descărcați baza de date folosită în acest tutorial