logo

Příkaz MySQL DELETE

Příkaz MySQL DELETE se používá k odstranění záznamů z tabulky MySQL, které již nejsou v databázi vyžadovány. Tento dotaz v MySQL odstraní celý řádek z tabulky a vytvoří počet odstraněných řádků . Umožňuje nám také odstranit více než jeden záznam z tabulky v rámci jednoho dotazu, což je výhodné při odstraňování velkého počtu záznamů z tabulky. Pomocí příkazu delete můžeme také odstranit data na základě podmínek.

Jakmile záznamy pomocí tohoto dotazu odstraníme, nelze je obnovit . Proto se před odstraněním jakýchkoli záznamů z tabulky doporučuje vytvořte zálohu vaší databáze . Zálohy databáze nám umožňují obnovit data, kdykoli je v budoucnu budeme potřebovat.

Syntax:

Níže jsou uvedeny syntaxe, které ilustrují, jak používat příkaz DELETE:

 DELETE FROM table_name WHERE condition; 

Ve výše uvedeném příkazu musíme nejprve zadat název tabulky, ze které chceme data odstranit. Za druhé, musíme zadat podmínku pro odstranění záznamů v klauzuli WHERE , která je volitelná. Pokud do příkazu vynecháme klauzuli WHERE, tento dotaz odstraní celé záznamy z databázové tabulky.

Pokud chceme odstranit záznamy z více tabulek pomocí jediného dotazu DELETE, musíme přidat PŘIPOJIT doložka s příkazem DELETE.

Pokud chceme smazat všechny záznamy z tabulky, aniž bychom znali počet smazaných řádků, musíme použít ZKRÁTIT TABULKU prohlášení, které poskytuje lepší výkon.

Pojďme pochopit, jak funguje příkaz DELETE MySQL prostřednictvím různých příkladů.

Příklady příkazů MySQL DELETE

Zde budeme používat 'zaměstnanci' a 'Způsob platby' tabulky pro demonstraci příkazu DELETE. Předpokládejme, že tabulky Zaměstnanci a Platby obsahují následující údaje:

mysql smazat dotaz
mysql smazat dotaz

Pokud chceme smazat zaměstnance, jehož emp_id je 107 , měli bychom použít příkaz DELETE s klauzulí WHERE. Viz níže uvedený dotaz:

abstraktní metody
 mysql> DELETE FROM Employees WHERE emp_id=107; 

Po provedení dotazu vrátí výstup jako na obrázku níže. Jakmile je záznam smazán, ověřte tabulku pomocí příkazu SELECT :

mysql smazat dotaz

Pokud chceme smazat všechny záznamy z tabulky, není potřeba používat klauzuli WHERE s příkazem DELETE. Viz níže uvedený kód a výstup:

mysql smazat dotaz

Ve výše uvedeném výstupu můžeme vidět, že po odstranění všech řádků bude tabulka Zaměstnanci prázdná. To znamená, že ve vybrané tabulce nejsou k dispozici žádné záznamy.

MySQL klauzule DELETE a LIMIT

Klauzule MySQL Limit se používá k omezení počtu vrácených řádků ze sady výsledků, spíše než k načítání celých záznamů v tabulce. Někdy chceme omezit počet řádků, které mají být z tabulky odstraněny; v tom případě použijeme OMEZIT doložka takto:

 DELETE FROM table_name WHERE condition ORDER BY colm1, colm2, ... LIMIT row_count; 

Je třeba poznamenat, že pořadí řádků v tabulce MySQL není specifikováno. Proto bychom měli vždy používat SEŘADIT PODLE klauzule při použití klauzule LIMIT.

Například , následující dotaz nejprve seřadí zaměstnance podle jejich jmen abecedně a odstraní první tři zaměstnance z tabulky:

 mysql> DELETE FROM Employees ORDER BY name LIMIT 3; 

Poskytne níže uvedený výstup:

mysql smazat dotaz

MySQL klauzule DELETE a JOIN

Klauzule JOIN se používá k přidání dvou nebo více tabulek v MySQL. Klauzuli JOIN přidáme s příkazem DELETE vždy, když chceme odstranit záznamy z více tabulek v rámci jednoho dotazu. Viz níže uvedený dotaz:

 mysql> DELETE Employees, Payment FROM Employees INNER JOIN Payment ON Employees.emp_id = Payment.emp_id WHERE Employees.emp_id = 102; 

Výstup:

Po provedení uvidíme výstup jako na obrázku níže:

mysql smazat dotaz

Chcete-li si přečíst další informace o příkazu DELETE s klauzulí JOIN, klikněte zde .