Poizvedba DELETE MySQL: Kako izbrisati vrstico iz tabele

Kazalo:

Anonim

Kaj je poizvedba DELETE?

Ukaz MySQL DELETE se uporablja za brisanje vrstic, ki niso več potrebne iz tabel zbirke podatkov. Iz tabele izbriše celo vrstico in vrne število izbrisanih vrstic. Ukaz Delete je priročen za brisanje začasnih ali zastarelih podatkov iz baze podatkov.

Poizvedba Delete v MySQL lahko v eni poizvedbi iz tabele izbriše več vrstic. To se izkaže za prednosti pri odstranjevanju velikega števila vrstic iz tabele baze podatkov.

Ko je vrstica Delete v vrstici MySQL izbrisana, je ni več mogoče obnoviti. Zato je močno priporočljivo narediti varnostne kopije baze podatkov, preden izbrišete kakršne koli podatke iz baze. Tako lahko obnovite bazo podatkov in si jih pozneje ogledate, če bodo potrebni.

Kako izbrisati vrstico v MySQL

Za brisanje vrstice v MySQL se uporablja stavek DELETE FROM:

DELETE FROM `table_name` [WHERE condition];

TUKAJ

  • DELETE FROM `ime_tabele` sporoči strežniku MySQL, da odstrani vrstice iz tabele ...
  • [WHERE pogoj] ni obvezen in se uporablja za postavitev filtra, ki omejuje število vrstic, na katere vpliva poizvedba vrstic MySQL DELETE.

Če se stavek WHERE ne uporablja v poizvedbi MySQL DELETE, bodo izbrisane vse vrstice v dani tabeli.

Primer poizvedbe MySQL Delete

Preden se podrobneje pogovorimo o ukazu DELETE, v tabelo filmov vstavimo nekaj vzorčnih podatkov, s katerimi bomo delali.

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

Če izvedete zgornji skript, v tabelo s filmi dodate tri (3) filme. Preden nadaljujemo z našo lekcijo, poglejmo vse filme v tabelo. Spodnji scenarij to počne.

SELECT * FROM `movies`;

Izvedba zgornjega skripta nam da naslednje rezultate.

 
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

Predpostavimo, da videoteka Myflix ne želi več oddajati "Velikega diktatorja" svojim članom in želijo, da ga odstranijo iz baze podatkov. Njegov ID filma je 18, s pomočjo spodnjega skripta lahko izbrišemo njegovo vrstico iz tabele s filmi.

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

Izvedba zgornjega skripta v MySQL WorkBench proti Myflixu izbriše film z id 18 iz tabele zbirke podatkov.

Poglejmo trenutno stanje tabele 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

OPOMBA:

  • film z id 18 ni bil vrnjen v naboru rezultatov poizvedbe.
  • ne morete izbrisati niti enega stolpca za tabelo. Izbrišete lahko celo vrstico.

Recimo, da imamo seznam filmov, ki jih želimo izbrisati. Klavzulo WHERE lahko uporabimo skupaj z IN.

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

Z izvajanjem zgornjega skripta iz naše tabele filmov izbrišete filme z ID-jema 20 in 21.

Povzetek

  • Ukaz delete se uporablja za odstranjevanje podatkov, ki niso več potrebni iz tabele.
  • Stavek "WHERE" se uporablja za omejitev števila vrstic, na katere vpliva poizvedba DELETE.
  • Ko podatke izbrišete, jih ni več mogoče obnoviti, zato priporočamo, da pred brisanjem podatkov naredite varnostne kopije.