Príkaz SQL DELETE sa používa na odstránenie konkrétnych riadkov z tabuľky pri zachovaní nedotknutej štruktúry tabuľky. Je to odlišné od DROP, ktoré vymaže celú tabuľku.
- Odstraňuje riadky na základe podmienok.
- Zachováva obmedzenia schém tabuľky a indexy.
- Môže odstrániť jeden riadok alebo všetky riadky.
Príklad: Najprv budeme vytvoriť ukážkovú SQL databázu a tabuľku, na ktorej použijeme príkaz SQL DELETE.
dotaz:
DELETE FROM Employees
WHERE EmployeeID = 5;
výstup:
- Tento dotaz vymaže riadok z tabuľky Zamestnanci, kde má ID zamestnanca hodnotu 5.
- Odstráni sa iba tento konkrétny záznam; všetky ostatné riadky zostanú nezmenené.
Syntax:
DELETE FROM table_name
WHERE some_condition;
- Some_condition: Podmienka používaná na filtrovanie riadkov, ktoré chcete odstrániť.
- table_name: Názov tabuľky, z ktorej chcete odstrániť riadky.
Poznámka: Pomocou klauzuly WHERE môžeme vymazať jeden alebo viacero záznamov; ak sa vynechá, všetky záznamy v tabuľke sa odstránia.
Príklady príkazu SQL DELETE
Predpokladajme, že sme vytvorili tabuľku s názvom GFG_Employee v SQL, ktorá obsahuje osobné údaje zamestnanca vrátane jeho identifikačného mena, e-mailu a oddelenia atď., ako je uvedené nižšie.
CREATE TABLE GFG_Employees (
id INT PRIMÁRNY KĽÚČ
meno VARCHAR (20)
email VARCHAR (25)
oddelenie VARCHAR(20)
);
INSERT INTO GFG_Employees (identifikátor e-mailového oddelenia) VALUES
(1 'Jessie' '[email protected]' 'Vývoj')
(2 'Praveen' '[email protected]' 'HR')
(3 'Can' '[email protected]' 'Predaj')
(4 'Rithvik' '[email protected]' 'IT')
(5 'Suraj' '[email protected]' 'Zabezpečenie kvality')
(6 'Om' '[email protected]' 'IT')
(7 'Naruto' '[email protected]' 'Vývoj');
Vyberte * From GFG_Employees
výstup:
Príklad 1: Vymazanie jedného záznamu
Na odstránenie konkrétneho riadku z tabuľky môžeme použiť príkaz DELETE s podmienkou. The KDE doložka zabezpečuje, že sa odstráni iba zamýšľaný záznam. Záznamy s názvom Rithvik môžeme odstrániť pomocou nasledujúceho dotazu:
dotaz:
DELETE FROM GFG_Employees
WHERE NAME = 'Rithvik';
výstup:
Príklad 2: Vymazanie viacerých záznamov
Ak chcete odstrániť viacero záznamov, môžete zadať podmienku, ktorá zodpovedá niekoľkým riadkom. Vymažte riadky z tabuľky GFG_Employees, kde je oddelenie „Vývoj“. Tým sa odstránia 2 riadky (prvý a siedmy riadok).
dotaz:
DELETE FROM GFG_Employees
WHERE department = 'Development';
Výstup
Príklad 3: Vymazanie všetkých záznamov z tabuľky
Ak potrebujeme vymazať všetky záznamy z tabuľky, môžeme vynechať klauzulu WHERE alebo alternatívne použiť príkaz DELETE s hviezdičkou (*) na označenie všetkých riadkov.
dotaz:
DELETE FROM GFG_Employees;
Or
DELETE * FROM GFG_Employees;
výstup:
Všetky záznamy v tabuľke budú vymazané, nezostali žiadne záznamy na zobrazenie. Tabuľka GFG_Employees bude prázdna.
Návrat späť Operácie DELETE
Keďže príkaz DELETE je operácia DML, môže byť pri vykonaní v príkaze vrátená späť. Ak omylom vymažete záznamy alebo potrebujete zopakovať proces, môžete použiť ROLLBACK príkaz.
dotaz:
START TRANSACTION;
DELETE FROM GFG_Employees WHERE department = 'Development';
-- If needed you can rollback the deletion
ROLLBACK;
Vysvetlenie: Príkaz ROLLBACK zruší zmeny vykonané príkazom DELETE, čím efektívne obnoví záznamy, ktoré boli vymazané počas transakcie.
Vytvoriť kvíz