logo

Instrucțiunea SQL DELETE

Instrucțiunea SQL DELETE este utilizată pentru a elimina anumite rânduri dintr-un tabel, păstrând în același timp structura tabelului intactă. Este diferit de DROP care șterge întregul tabel.

  • Îndepărtează rândurile în funcție de condiții.
  • Păstrează constrângerile și indecșii schemei de tabel.
  • Poate șterge un singur rând sau toate rândurile.

Exemplu: Mai întâi vom face crea o bază de date demo SQL și un tabel pe care vom folosi comanda SQL DELETE.

Dintre' title=

Interogare:



DELETE FROM Employees  
WHERE EmployeeID = 5;

Ieșire:

Șters-rând-' loading='lazy' title=
  • Această interogare șterge rândul din tabelul Employees unde EmployeeID este 5.
  • Numai acea înregistrare specifică este eliminată; toate celelalte rânduri rămân neschimbate.

Sintaxă:

DELETE FROM table_name   
WHERE some_condition;
  • Some_condition: O condiție folosită pentru a filtra rândurile pe care doriți să le ștergeți.
  • table_name: Numele tabelului din care doriți să ștergeți rândurile.

Nota: Putem șterge înregistrări simple sau multiple folosind clauza WHERE; dacă este omis toate înregistrările din tabel sunt eliminate.

Exemple de instrucțiune SQL DELETE

Să presupunem că am creat un tabel numit GFG_Employee în SQL, care conține detaliile personale ale Angajatului, inclusiv ID-ul, e-mailul și departamentul etc., așa cum se arată mai jos.

CREAȚI TABEL GFG_Angajați (
id INT CHEIE PRIMARĂ
nume VARCHAR (20)
e-mail VARCHAR (25)
departament VARCHAR(20)
);

INSERT INTO GFG_Employees (ID nume e-mail departament) VALUES
(1 „Jessie” „[email protected]” „Dezvoltare”)
(2 „Praveen” „[email protected]” „HR”)
(3 „Pot”, „[email protected]” „Vânzări”)
(4 „Rithvik” „[email protected]” „IT”)
(5 „Suraj” „[email protected]” „Asigurarea calității”)
(6 „Om” „[email protected]” „IT”)
(7 „Naruto” „[email protected]” „Dezvoltare”);

Selectați * Din GFG_Employees

Ieșire:

GFG_angajat' loading='lazy' title=

Exemplul 1: Ștergerea înregistrării unice

Putem folosi instrucțiunea DELETE cu o condiție pentru a șterge un anumit rând dintr-un tabel. The UNDE clauza se asigură că numai înregistrarea dorită este eliminată. Putem șterge înregistrările numite Rithvik utilizând interogarea de mai jos:

Interogare:

DELETE FROM GFG_Employees   
WHERE NAME = 'Rithvik';

Ieșire:

informații șterse' loading='lazy' title=

Exemplul 2: Ștergerea mai multor înregistrări

Pentru a șterge mai multe înregistrări, puteți specifica o condiție care se potrivește cu mai multe rânduri. Să ștergem rândurile din tabelul  GFG_Employees unde departamentul este „Dezvoltare”. Aceasta va șterge 2 rânduri (primul rând și al șaptelea rând).

Interogare:

DELETE FROM GFG_Employees   
WHERE department = 'Development';

Ieșire

departament' loading='lazy' title=

Exemplul 3: Ștergeți toate înregistrările dintr-un tabel

Dacă trebuie să ștergem toate înregistrările din tabel, putem omite clauza WHERE sau, alternativ, folosim instrucțiunea DELETE cu un asterisc (*) pentru a denota toate rândurile.

Interogare:

DELETE FROM GFG_Employees;  
Or
DELETE * FROM GFG_Employees;

Ieșire:

gol' loading='lazy' title=

Toate înregistrările din tabel vor fi șterse, nu mai sunt înregistrări de afișat. Tabelul GFG_Angajați  va deveni gol.

Revenire la operațiunile DELETE

Deoarece instrucțiunea DELETE este o operație DML, poate fi anulată când este executată într-o instrucțiune. Dacă ștergeți din greșeală înregistrări sau trebuie să repetați procesul, puteți utiliza ROLLBACK comanda.

Interogare:

START TRANSACTION;  
DELETE FROM GFG_Employees WHERE department = 'Development';
-- If needed you can rollback the deletion
ROLLBACK;

Explicaţie: Comanda ROLLBACK va anula modificările făcute de instrucțiunea DELETE restabilind efectiv înregistrările care au fost șterse în timpul tranzacției.

Creați un test