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.
Interogare:
DELETE FROM Employees
WHERE EmployeeID = 5;
Ieșire:
- 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:
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:
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
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:
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