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.