MySQL DELETE Query: Jak odstranit řádek z tabulky

Obsah:

Anonim

Co je dotaz DELETE?

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

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

Jakmile byl odstraněn řádek Odstranit v řádku MySQL, nelze jej obnovit. Proto se důrazně 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 vyžadováno.

Jak odstranit řádek v MySQL

K odstranění řádku v MySQL se používá příkaz DELETE FROM:

DELETE FROM `table_name` [WHERE condition];

TADY

  • DELETE FROM `table_name` říká serveru MySQL, aby odstranil řádky z tabulky ...
  • [WHERE podmínka] je volitelná a používá se k vložení filtru, který omezuje počet řádků ovlivněných dotazem na řádek MySQL DELETE.

Pokud klauzule WHERE není použita v dotazu MySQL DELETE, budou odstraněny všechny řádky v dané tabulce.

Příklad dotazu na odstranění MySQL

Než půjdeme do podrobnější diskuse o příkazu 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);

Provedení výše uvedeného skriptu přidá tři (3) filmy do tabulky filmů. Než půjdeme dále do naší lekce, pojďme si všechny filmy v naší tabulce. Níže uvedený skript to dělá.

SELECT * FROM `movies`;

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

 
movie_id itle 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 „The Great Dictator“ svým členům a chtějí, aby byla odstraněna z databáze. Jeho ID filmu je 18, můžeme použít níže uvedený skript k odstranění jeho řádku z tabulky filmů.

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

Provedení výše uvedeného skriptu v MySQL WorkBench proti Myflixu odstraní film s id 18 z databázové tabulky.

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.
  • pro tabulku nemůžete odstranit jediný sloupec. Můžete odstranit celý řádek.

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

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

Provedení výše uvedeného skriptu odstraní filmy s ID 20 a 21 z naší tabulky filmů.

souhrn

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