Hvad er DELETE Query?
MySQL DELETE- 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. Slet kommando er praktisk til at slette midlertidige eller forældede data fra din database.
Slet forespørgslen i MySQL kan slette mere end en række fra en tabel i en enkelt forespørgsel. Dette viser sig at være fordele ved fjernelse af et stort antal rækker fra en databasetabel.
Når en Slet række i MySQL-række er slettet, kan den ikke gendannes. Det anbefales derfor stærkt at lave sikkerhedskopier af databaser, 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 slettes 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-serveren at fjerne rækker fra tabellen ...
- [WHERE condition] er valgfri og bruges til at anbringe et filter, der begrænser antallet af rækker, der er påvirket af MySQL DELETE-rækkeforespørgslen.
Hvis WHERE-udtrykket ikke bruges i MySQL DELETE-forespørgslen, slettes alle rækkerne i en given tabel.
Eksempel på MySQL Delete Query
Inden vi går ind i flere detaljer, diskuter SLET-kommandoen, 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 i filmtabellen. Før vi går videre ind i vores lektion, lad os få alle filmene i vores tabel. Skriptet nedenfor gør det.
SELECT * FROM `movies`;
Udførelse af ovenstående script giver os følgende resultater.
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 |
Lad os antage, at Myflix-videobiblioteket ikke længere ønsker at udleje "The Great Dictator" 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ækken fra filmtabellen.
DELETE FROM `movies` WHERE `movie_id` = 18;
Ved at udføre ovenstående script i MySQL WorkBench mod Myflix slettes 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:
- filmen med id 18 er ikke returneret i forespørgselsresultatet.
- 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-klausulen sammen med IN.
DELETE FROM `movies` WHERE `movie_id` IN (20,21);
Ved at udføre ovenstående script slettes film med ID 20 og 21 fra vores filmtabel.
Resumé
- Sletkommandoen bruges til at fjerne data, der ikke længere kræves fra en tabel.
- "WHERE-klausulen" bruges til at begrænse antallet af rækker, der er påvirket af DELETE-forespørgslen.
- Når data er slettet, kan de ikke gendannes, det anbefales derfor kraftigt at tage sikkerhedskopier, inden du sletter data.