VYMAZAŤ je príkaz DML (Data Manipulation Language) a používa sa, keď zadávame riadok (n-ticu), ktorý chceme odstrániť alebo vymazať z tabuľky alebo vzťahu. Príkaz DELETE môže obsahovať klauzulu WHERE. Ak sa klauzula WHERE použije s príkazom DELETE, potom odstráni alebo vymaže iba tie riadky (dvojice), ktoré spĺňajú podmienku; v opačnom prípade štandardne odstráni všetky n-tice (riadky) z tabuľky. Pamätajte, že DELETE zaznamenáva vymazania riadkov.
Syntax:
DELETE FROM TableName
KDE podmienka;
prázdny zoznam java
TRUNCATE (skrátiť). je príkaz DDL (Data Definition Language) a používa sa na odstránenie všetkých riadkov alebo n-tic z tabuľky. Na rozdiel od príkazu DELETE príkaz TRUNCATE neobsahuje a klauzula WHERE . V príkaze TRUNCATE sa protokol transakcií pre každú vymazanú stránku s údajmi nezaznamenáva. Na rozdiel od príkazu DELETE je príkaz TRUNCATE rýchly. Po použití príkazu TRUNCATE nemôžeme vrátiť údaje späť.
Syntax:
TRUNCATE TABLE TableName;
Poďme to pochopiť pomocou jednoduchého príkladu, v ktorom vytvoríme jednu fiktívnu tabuľku a potom vykonáme operáciu odstránenia.
Dopyt:
CREATE table Employee ( Emp_id int, name VARCHAR(20), country VARCHAR(20), Salary INT); --insert the data in the Employee Table INSERT INTO Employee (Emp_id, name, country, Salary) values (101, 'Mohit', 'India', 60000), (103, 'Anish', 'England', 70000), (104, 'Shubham', 'France', 100000), (102, 'Danish', 'Sweden', 40000), (105, 'Vivek', 'Wales', 50000), (106, 'Rohan', 'Scotland', 30000); Select * from Employee ;>
Výkon

Tabuľka zamestnancov
Príklad príkazu Delete:
Teraz musíte vytvoriť dotaz na odstránenie poslednej položky s hodnotou 106 pre Emp_id.
Dopyt:
Delete from Employee where Emp_id = 106;>
Výkon

výkon
Príklad príkazu TRUNCATE
Ak chcete v tomto prípade úplne odstrániť všetky záznamy zo stolových prehrávačov, použite príkaz skrátiť.
Dopyt:
TRUNCATE TABLE Employee;>
Rozdiely medzi DELETE a TRUNCATE
| Odstrániť | Skrátiť |
|---|---|
| Príkaz DELETE sa používa na odstránenie určených riadkov (jeden alebo viac). | Tento príkaz sa používa na odstránenie všetkých riadkov z tabuľky. |
| Je to a DML (Jazyk na manipuláciu s údajmi) príkaz. | Zatiaľ čo je a DDL (jazyk definície údajov) príkaz. |
| V príkaze DELETE môže byť klauzula WHERE na filtrovanie záznamov. | Aj keď v príkaze TRUNCATE nemusí byť klauzula WHERE. |
| V príkaze DELETE je n-tica pred odstránením uzamknutá. | Počas tohto príkazu je údajová stránka pred odstránením údajov tabuľky uzamknutá. |
| Príkaz DELETE odstraňuje riadky po jednom a zaznamenáva záznam do denníka transakcií pre každý odstránený riadok. | TRUNCATE TABLE odstráni údaje uvoľnením údajových stránok používaných na uloženie údajov tabuľky a do protokolu transakcií zaznamená iba uvoľnenia stránok. |
| Príkaz DELETE je pomalší ako príkaz TRUNCATE. | Zatiaľ čo príkaz TRUNCATE je rýchlejší ako príkaz DELETE. |
| Ak chcete použiť funkciu Odstrániť, potrebujete povolenie DELETE v tabuľke. | Na použitie Truncate na stole potrebujeme aspoň ALTER povolenie na stôl. |
| Identita menšieho počtu stĺpcov si zachová identitu aj po použití príkazu DELETE v tabuľke. | Identita stĺpca sa nastaví na počiatočnú hodnotu, ak tabuľka obsahuje stĺpec identity. |
| Odstránenie možno použiť s indexovanými zobrazeniami. | Skrátiť nemožno použiť s indexovanými zobrazeniami. |
| Tento príkaz môže tiež aktivovať spúšťanie. | Tento príkaz neaktivuje spúšťač. |
| Príkaz DELETE zaberá viac transakčných priestorov ako Truncate. | Príkaz Truncate zaberá menej transakčných priestorov ako DELETE. |
| Operácie vymazania je možné vrátiť späť. | TRUNCATE nie je možné vrátiť späť, pretože spôsobuje implicitné potvrdenie. |
| Delete nezahodí celú tabuľku. Zamkne tabuľku a začne odstraňovať riadky. | TRUNCATE najprv zruší tabuľku a potom ju znova vytvorí, čo je rýchlejšie ako odstraňovanie jednotlivých riadkov. |
Záver
V tomto článku SQL vývojári môžu správne odstrániť riadky správnym použitím príkazov DELETE a TRUNCATE. Príkaz TRUNCATE sa musí používať opatrne, pretože vymaže všetky záznamy tabuľky. Začiatočníci budú tiež ťažiť z vysvetlenia rozdielov medzi príkazmi Delete a Truncate v tomto návode.
VYMAZAŤ:
- Chcete z tabuľky odstrániť všetkých zamestnancov, ktorí si za posledných šesť mesiacov nič nekúpili.
- Chcete odstrániť zamestnanca z tabuľky.
SKRÁNIŤ:
- Chcete obnoviť obsah tabuľky do pôvodného stavu.
- Nemusíte mať možnosť obnoviť údaje; len ho chcete úplne odstrániť zo stola.