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ț
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:
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ț:
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:
Î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:
Preț:
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ă:
Î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ă
- Din bara de navigare din stânga, faceți clic pe Baze de date.
- Faceți clic pe Demo.
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
Pasul 5) Verificați dacă rândul este șters
Să verificăm dacă ștergerea a avut succes:
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)
- Din bara de navigare din stânga, faceți clic pe Baze de date.
- Faceți clic pe Demo.
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.
Pas 5) Să verificăm dacă ștergerea a avut succes:
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)
- Din bara de navigare din stânga, faceți clic pe Baze de date.
- Faceți clic pe Demo.
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.
Pas 5) Să verificăm dacă ștergerea a avut succes:
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