VYMAZAT je příkaz DML (Data Manipulation Language) a používá se, když zadáváme řádek (n-tice), který chceme odstranit nebo odstranit z tabulky nebo vztahu. Příkaz DELETE může obsahovat klauzuli WHERE. Pokud je s příkazem DELETE použita klauzule WHERE, odstraní nebo odstraní pouze ty řádky (n-tice), které splňují podmínku; jinak ve výchozím nastavení odstraní všechny n-tice (řádky) z tabulky. Pamatujte, že DELETE zaznamenává odstranění řádků.
Syntax:
DELETE FROM TableName
KDE podmínka;
co je $home linux
ZKRÁTIT je příkaz DDL (Data Definition Language) a používá se k odstranění všech řádků nebo n-tic z tabulky. Na rozdíl od příkazu DELETE příkaz TRUNCATE neobsahuje a klauzule WHERE . V příkazu TRUNCATE se protokol transakcí pro každou odstraněnou datovou stránku nezaznamenává. Na rozdíl od příkazu DELETE je příkaz TRUNCATE rychlý. Po použití příkazu TRUNCATE nelze data vrátit zpět.
Syntax:
TRUNCATE TABLE Název_tabulky;
Pojďme to pochopit na jednom jednoduchém příkladu, ve kterém vytvoříme jednu fiktivní tabulku a poté provedeme operaci odstranění.
Dotaz:
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ýstup

Tabulka zaměstnanců
Příklad příkazu Delete:
Nyní musíte vytvořit dotaz k odstranění poslední položky s hodnotou 106 pro Emp_id.
Dotaz:
Delete from Employee where Emp_id = 106;>
Výstup

výstup
Příklad příkazu TRUNCATE
Chcete-li v tomto případě úplně odstranit všechny záznamy z hráčů u stolu, použijte příkaz zkrátit.
Dotaz:
TRUNCATE TABLE Employee;>
Rozdíly mezi DELETE a TRUNCATE
| Vymazat | Zkrátit |
|---|---|
| Příkaz DELETE se používá k odstranění určených řádků (jeden nebo více). | Tento příkaz se používá k odstranění všech řádků z tabulky. |
| Je to a DML (Jazyk pro manipulaci s daty) příkaz. | Zatímco je a DDL (Data Definition Language) příkaz. |
| V příkazu DELETE může být klauzule WHERE pro filtrování záznamů. | I když v příkazu TRUNCATE nemusí být klauzule WHERE. |
| V příkazu DELETE je n-tice před odstraněním uzamčena. | Během tohoto příkazu je datová stránka před odstraněním dat tabulky uzamčena. |
| Příkaz DELETE odebere řádky jeden po druhém a zaznamená záznam do protokolu transakcí pro každý odstraněný řádek. | TRUNCATE TABLE odebere data uvolněním datových stránek používaných k uložení dat tabulky a zaznamená pouze uvolnění stránek do protokolu transakcí. |
| Příkaz DELETE je pomalejší než příkaz TRUNCATE. | Zatímco příkaz TRUNCATE je rychlejší než příkaz DELETE. |
| Chcete-li použít Delete, potřebujete oprávnění DELETE v tabulce. | K použití Truncate na stole potřebujeme alespoň ZMĚNIT povolení na stůl. |
| Identita méně sloupce si zachová identitu po použití příkazu DELETE v tabulce. | Identita sloupce je resetována na počáteční hodnotu, pokud tabulka obsahuje sloupec identity. |
| Odstranění lze použít s indexovanými pohledy. | Zkrácení nelze použít s indexovanými pohledy. |
| Tento příkaz může také aktivovat spuštění. | Tento příkaz neaktivuje spouštění. |
| Příkaz DELETE zabírá více transakčního prostoru než Truncate. | Příkaz Truncate zabírá méně transakčního prostoru než DELETE. |
| Operace mazání lze vrátit zpět. | TRUNCATE nelze vrátit zpět, protože způsobuje implicitní potvrzení. |
| Odstraněním se nezruší celá tabulka. Získá zámek na tabulce a začne mazat řádky. | TRUNCATE nejprve odstraní tabulku a poté ji znovu vytvoří, což je rychlejší než mazání jednotlivých řádků. |
Závěr
V tomto článku, SQL vývojáři mohou řádky správně odebrat pomocí příkazů DELETE a TRUNCATE. Příkaz TRUNCATE je třeba používat opatrně, protože odstraní všechny záznamy tabulky. Začátečníci budou také těžit z tohoto výukového programu vysvětlení rozdílů mezi příkazy Delete a Truncate.
VYMAZAT:
- Chcete ze stolu odstranit všechny zaměstnance, kteří za posledních šest měsíců nic nezakoupili.
- Chcete odstranit zaměstnance z tabulky.
ZKRÁTIT:
- Chcete obnovit obsah tabulky do původního stavu.
- Nemusíte mít možnost obnovit data; jen to chcete úplně odstranit ze stolu.