MySQL DELETE Query: Ako odstrániť riadok z tabuľky

Obsah:

Anonim

Čo je dotaz DELETE?

Príkaz MySQL DELETE sa používa na odstránenie riadkov, ktoré už nie sú potrebné z databázových tabuliek. Odstráni celý riadok z tabuľky a vráti počet odstránených riadkov. Príkaz Odstrániť je vhodný na odstránenie dočasných alebo zastaraných údajov z databázy.

Vymazávací dotaz v MySQL dokáže vymazať viac ako jeden riadok z tabuľky v jednom dotaze. To sa ukazuje ako výhoda pri odstraňovaní veľkého počtu riadkov z databázovej tabuľky.

Po odstránení riadku Odstrániť v riadku MySQL ho nie je možné obnoviť. Preto sa dôrazne odporúča vykonať zálohy databázy pred odstránením akýchkoľvek údajov z databázy. To vám umožní obnoviť databázu a zobraziť údaje neskôr, ak to bude potrebné.

Ako odstrániť riadok v MySQL

Na odstránenie riadku v MySQL sa používa príkaz DELETE FROM:

DELETE FROM `table_name` [WHERE condition];

TU

  • DELETE FROM `table_name` hovorí serveru MySQL, aby odstránil riadky z tabuľky ...
  • [WHERE condition] je voliteľné a používa sa na vloženie filtra, ktorý obmedzuje počet riadkov ovplyvnených dotazom na riadok MySQL DELETE.

Ak sa klauzula WHERE nepoužije v dotaze MySQL DELETE, odstránia sa všetky riadky v danej tabuľke.

Príklad dotazu na odstránenie MySQL

Predtým, ako sa podrobnejšie zaoberáme príkazom DELETE, vložme do tabuľky filmov niekoľko vzorových údajov, s ktorými budeme pracovať.

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);

Vykonanie vyššie uvedeného skriptu pridá do tabuľky filmov tri (3) filmy. Než sa pustíme do ďalšej lekcie, poďme si predstaviť všetky filmy v našej tabuľke. Skript zobrazený nižšie to robí.

SELECT * FROM `movies`;

Vykonanie vyššie uvedeného skriptu nám prinesie nasledujúce 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

Predpokladajme, že videotéka Myflix si už nepraje prenajímať „Veľkého diktátora“ svojim členom a chcú, aby bol odstránený z databázy. Jeho ID filmu je 18, môžeme použiť nižšie uvedený skript na odstránenie jeho riadku z tabuľky filmov.

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

Spustenie vyššie uvedeného skriptu v MySQL WorkBench proti Myflixu vymaže film s id 18 z databázovej tabuľky.

Pozrime sa na tabuľku aktuálneho stavu filmov.

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 nebol vrátený v množine výsledkov dotazu.
  • pre tabuľku nemôžete odstrániť jeden stĺpec. Môžete odstrániť celý riadok.

Povedzme, že máme zoznam filmov, ktoré chceme odstrániť. Spolu s IN môžeme použiť klauzulu WHERE.

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

Spustenie vyššie uvedeného skriptu vymaže filmy s ID 20 a 21 z našej tabuľky filmov.

Zhrnutie

  • Príkaz delete sa používa na odstránenie údajov, ktoré už z tabuľky nie sú potrebné.
  • „Klauzula WHERE“ sa používa na obmedzenie počtu riadkov ovplyvnených dotazom DELETE.
  • Po odstránení už údaje nie je možné obnoviť, preto sa dôrazne odporúča zálohovať ich pred odstránením.