Ce este interogarea ȘTERGERE?
Comanda MySQL DELETE este utilizată pentru a șterge rândurile care nu mai sunt necesare din tabelele bazei de date. Șterge întregul rând din tabel și returnează numărul de rânduri șterse. Comanda Șterge este utilă pentru a șterge datele temporare sau învechite din baza de date.
Interogarea Șterge din MySQL poate șterge mai multe rânduri dintr-un tabel într-o singură interogare. Acest lucru se dovedește a fi avantaje atunci când eliminați un număr mare de rânduri dintr-un tabel de baze de date.
După ce a fost șters un rând Ștergere din rândul MySQL, acesta nu poate fi recuperat. Prin urmare, se recomandă insistent să faceți copii de rezervă ale bazei de date înainte de a șterge orice date din baza de date. Acest lucru vă poate permite să restaurați baza de date și să vizualizați datele ulterior, dacă este necesar.
Cum să ștergeți un rând în MySQL
Pentru a șterge un rând din MySQL, se folosește instrucțiunea DELETE FROM:
DELETE FROM `table_name` [WHERE condition];
AICI
- DELETE FROM `table_name` îi spune serverului MySQL să elimine rândurile din tabel ...
- [Condiția WHERE] este opțională și este utilizată pentru a pune un filtru care restricționează numărul de rânduri afectate de interogarea MySQL DELETE.
Dacă clauza WHERE nu este utilizată în interogarea MySQL DELETE, atunci toate rândurile dintr-un tabel dat vor fi șterse.
Exemplu de interogare de ștergere MySQL
Înainte de a intra în discuții despre mai multe detalii, comanda DELETE, să inserăm câteva exemple de date în tabelul cu filme pentru a lucra.
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);
Executarea scenariului de mai sus adaugă trei (3) filme în tabelul cu filme. Înainte de a merge mai departe în lecția noastră, să luăm toate filmele în tabelul nostru. Scriptul prezentat mai jos face acest lucru.
SELECT * FROM `movies`;
Executarea scriptului de mai sus ne oferă următoarele 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 |
Să presupunem că biblioteca video Myflix nu mai dorește să închirieze „Marele dictator” membrilor săi și vor să fie eliminată din baza de date. ID-ul filmului este 18, putem folosi scriptul prezentat mai jos pentru a-i șterge rândul din tabelul cu filme.
DELETE FROM `movies` WHERE `movie_id` = 18;
Executarea scriptului de mai sus în MySQL WorkBench împotriva Myflix șterge filmul cu id 18 din tabelul bazei de date.
Să vedem starea actuală a tabelului cu filme.
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 |
NOTĂ:
- filmul cu ID-ul 18 nu a fost returnat în setul de rezultate ale interogării.
- nu puteți șterge o singură coloană pentru un tabel. Puteți șterge un rând întreg.
Să presupunem că avem o listă de filme pe care dorim să le ștergem. Putem folosi clauza WHERE împreună cu IN.
DELETE FROM `movies` WHERE `movie_id` IN (20,21);
Executarea scriptului de mai sus șterge filmele cu ID-urile 20 și 21 din tabelul nostru de filme.
rezumat
- Comanda de ștergere este utilizată pentru a elimina datele care nu mai sunt necesare dintr-un tabel.
- „Clauza WHERE” este utilizată pentru a limita numărul de rânduri afectate de interogarea DELETE.
- Odată ce datele au fost șterse, acestea nu pot fi recuperate, prin urmare, vă recomandăm să faceți copii de rezervă înainte de a șterge datele.