MySQL DELETE Query: Jak odstranit řádek z tabulky

Co je to DELETE Query?

MySQL Vymazat příkaz se používá k odstranění řádků, které již nejsou vyžadovány z databázových tabulek. Vymaže celý řádek z tabulky a vrátí počet smazaných řádků. Příkaz Delete se hodí k odstranění dočasných nebo zastaralých dat z databáze.

Dotaz Smazat v MySQL může odstranit více než jeden řádek z tabulky v jednom dotazu. To se ukazuje jako výhoda při odstraňování velkého počtu řádků z databázové tabulky.

Jakmile je řádek Delete in MySQL řádek byl smazán, nelze jej obnovit. Důrazně se proto doporučuje provést zálohu databáze před odstraněním jakýchkoli dat z databáze. To vám umožní obnovit databázi a zobrazit data později, pokud to bude potřeba.

Jak smazat řádek v MySQL

Chcete-li odstranit řádek v MySQL, používá se příkaz DELETE FROM:

DELETE FROM `table_name` [WHERE condition];

ZDE

  • DELETE FROM `název_tabulky` říká MySQL server pro odstranění řádků z tabulky ..
  • [WHERE condition] je volitelná a používá se k vložení filtru, který omezuje počet řádků ovlivněných syntaxí DELETE MySQL řádek dotazu.

V případě, že klauzule WHERE se nepoužívá v MySQL DELETE dotaz, pak budou odstraněny všechny řádky v dané tabulce.

Příklad MySQL Smazat dotaz

Než se pustíme do podrobnější diskuse o příkazu SQL DELETE, vložíme do tabulky filmů ukázková data, se kterými budeme pracovat.

INSERT INTO  `movies` (`title`, `director`, `year_released`, `category_id`) VALUES ('The Great Dictator', 'Chalie Chaplie', 1920, 7);
INSERT INTO `movies` (`title`, `director`, `category_id`) VALUES ('sample movie', 'Anonymous', 8);
INSERT INTO  movies (`title`, `director`, `year_released`, `category_id`) VALUES ('movie 3', 'John Brown', 1920, 8);

Spuštěním výše uvedeného skriptu přidáte do tabulky filmů tři (3) filmy. Než půjdeme dále do naší lekce, shrňme si všechny filmy v naší tabulce. Skript uvedený níže to dělá.

SELECT * FROM `movies`;

Spuštění výše uvedeného skriptu nám poskytne následující výsledky.

movie_id title director year_released category_id
1 Pirates of the Caribean 4 Rob Marshall 2011 1
2 Forgetting Sarah Marshal Nicholas Stoller 2008 2
3 X-Men NULL 2008 NULL
4 Code Name Black Edgar Jimz 2010 NULL
5 Daddy's Little Girls NULL 2007 8
6 Angels and Demons NULL 2007 6
7 Davinci Code NULL 2007 6
9 Honey mooners John Schultz 2005 8
16 67% Guilty NULL 2012 NULL
18 The Great Dictator Chalie Chaplie 1920 7
19 sample movie Anonymous NULL 8
20 movie 3 John Brown 1920 8

Předpokládejme, že videotéka Myflix si již nepřeje pronajímat „Velkého diktátora“ svým členům a chtějí jej odstranit z databáze. Jeho ID filmu je 18, můžeme použít skript uvedený níže k odstranění řádku z tabulky MySQL příklad.

DELETE FROM `movies` WHERE `movie_id` = 18;

Spuštění výše uvedeného skriptu v MySQL pracovní stůl proti Myflix odstraní film s ID 18 z tabulky databáze.

Podívejme se na aktuální stav tabulky filmů.

SELECT * FROM `movies`;
movie_id title director year_released category_id
1 Pirates of the Caribean 4 Rob Marshall 2011 1
2 Forgetting Sarah Marshal Nicholas Stoller 2008 2
3 X-Men NULL 2008 NULL
4 Code Name Black Edgar Jimz 2010 NULL
5 Daddy's Little Girls NULL 2007 8
6 Angels and Demons NULL 2007 6
7 Davinci Code NULL 2007 6
9 Honey mooners John Schultz 2005 8
16 67% Guilty NULL 2012 NULL
19 sample movie Anonymous NULL 8
20 movie 3 John Brown 1920 8

POZNÁMKA:

  • film s ID 18 nebyl vrácen v sadě výsledků dotazu.
  • nelze odstranit jeden sloupec pro tabulku. Můžete smazat celý řádek.

Řekněme, že máme seznam filmů, které chceme smazat. Spolu s IN můžeme použít klauzuli WHERE.

DELETE FROM `movies` WHERE `movie_id`  IN (20,21);

Spuštěním výše uvedeného skriptu se z naší tabulky filmů odstraní filmy s ID 20 a 21.

Shrnutí

  • Příkaz Smazat v MySQL, se používá k odstranění dat, která již nejsou vyžadována z tabulky.
  • Klauzule „WHERE“ se používá k omezení počtu řádků ovlivněných dotazem DELETE MySQL příkaz.
  • Jakmile jsou data smazána, nelze je obnovit, proto důrazně doporučujeme před smazáním dat zálohovat.