MySQL SLET Forespørgsel: Sådan sletter du en række fra tabellen
Hvad er SLET-forespørgslen?
MySQL Slette kommandoen bruges til at slette rækker, der ikke længere er nødvendige fra databasetabellerne. Det sletter hele rækken fra tabellen og returnerer antallet af slettede rækker. Delete-kommandoen er praktisk til at slette midlertidige eller forældede data fra din database.
Slet-forespørgslen i MySQL kan slette mere end én række fra en tabel i en enkelt forespørgsel. Dette viser sig at være fordele, når du fjerner et stort antal rækker fra en databasetabel.
En gang en Slet række ind MySQL rækken er blevet slettet, den kan ikke gendannes. Det anbefales derfor kraftigt at lave databasesikkerhedskopier, før du sletter data fra databasen. Dette kan give dig mulighed for at gendanne databasen og se dataene senere, hvis det skulle være nødvendigt.
Sådan sletter du en række i MySQL
For at slette en række i MySQL, bruges DELETE FROM-sætningen:
DELETE FROM `table_name` [WHERE condition];
HER
- SLET FRA `table_name` fortæller MySQL server for at fjerne rækker fra tabellen ..
- [WHERE condition] er valgfri og bruges til at sætte et filter, der begrænser antallet af rækker, der påvirkes af DELETE-syntaksen MySQL rækkeforespørgsel.
Hvis WHERE-klausul bruges ikke i MySQL SLET forespørgsel, så vil alle rækkerne i en given tabel blive slettet.
Eksempel MySQL Slet forespørgsel
Før vi går ind i en mere detaljeret diskussion om SQL DELETE-sætningen, lad os indsætte nogle eksempeldata i filmtabellen for at arbejde med.
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);
Udførelse af ovenstående script tilføjer tre (3) film til filmtabellen. Inden vi går længere ind i vores lektion, lad os få alle filmene i vores tabel. Scriptet vist nedenfor gør det.
SELECT * FROM `movies`;
Udførelse af ovenstående script giver os følgende resultater.
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 |
18 | The Great Dictator | Chalie Chaplie | 1920 | 7 |
19 | sample movie | Anonymous | NULL | 8 |
20 | movie 3 | John Brown | 1920 | 8 |
Lad os antage, at Myflix-videobiblioteket ikke længere ønsker at udleje "Den Store Diktator" til sine medlemmer, og de vil have det fjernet fra databasen. Dens film-id er 18, vi kan bruge scriptet vist nedenfor til at slette række fra tabellen MySQL eksempel.
DELETE FROM `movies` WHERE `movie_id` = 18;
Udførelse af ovenstående script i MySQL Arbejdsbænk mod Myflix sletter filmen med id 18 fra databasetabellen.
Lad os se den aktuelle status for filmtabellen.
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 |
BEMÆRK VENLIGST:
- filmen med id 18 er ikke blevet returneret i forespørgselsresultatsættet.
- du kan ikke slette en enkelt kolonne for en tabel. Du kan slette en hel række.
Lad os sige, at vi har en liste over film, vi vil slette . Vi kan bruge WHERE-sætningen sammen med IN.
DELETE FROM `movies` WHERE `movie_id` IN (20,21);
Udførelse af ovenstående script sletter film med ID 20 og 21 fra vores filmtabel.
Resumé
- Kommandoen Slet ind MySQL, bruges til at fjerne data, der ikke længere er nødvendige fra en tabel.
- "WHERE-sætningen" bruges til at begrænse antallet af rækker, der påvirkes af DELETE-forespørgslen MySQL kommando.
- Når data først er blevet slettet, kan de ikke gendannes, det anbefales derfor kraftigt at lave sikkerhedskopier før sletning af data.