Hva er SLETT-spørringen?
MySQL DELETE- kommandoen brukes til å slette rader som ikke lenger er nødvendige fra databasetabellene. Den sletter hele raden fra tabellen og returnerer antall slettede rader. Slett-kommandoen er nyttig for å slette midlertidige eller foreldede data fra databasen din.
Slett spørringen i MySQL kan slette mer enn én rad fra en tabell i et enkelt spørsmål. Dette viser seg å være fordeler når du fjerner et stort antall rader fra en databasetabell.
Når en Delete-rad i MySQL-raden er slettet, kan den ikke gjenopprettes. Det anbefales derfor sterkt å ta sikkerhetskopier av databaser før du sletter data fra databasen. Dette kan tillate deg å gjenopprette databasen og se dataene senere hvis det er nødvendig.
Slik sletter du en rad i MySQL
For å slette en rad i MySQL, brukes DELETE FROM-setningen:
DELETE FROM `table_name` [WHERE condition];
HER
- SLETT FRA `table_name` ber MySQL-serveren om å fjerne rader fra tabellen ...
- [WHERE condition] er valgfritt og brukes til å sette et filter som begrenser antall rader som påvirkes av MySQL DELETE-radespørringen.
Hvis WHERE-setningen ikke brukes i MySQL DELETE-spørringen, blir alle radene i en gitt tabell slettet.
Eksempel på MySQL Delete Query
Før vi går inn i flere detaljer om SLETT-kommandoen, la oss sette inn noen eksempeldata i filmtabellen for å jobbe 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);
Å utføre ovennevnte skript legger til tre (3) filmer i filmtabellen. Før vi går lenger inn i leksjonen, la oss få alle filmene på bordet vårt. Skriptet vist nedenfor gjør det.
SELECT * FROM `movies`;
Å utføre skriptet ovenfor gir oss 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 |
La oss anta at Myflix-videobiblioteket ikke lenger ønsker å leie ut "The Great Dictator" til medlemmene, og de vil ha det fjernet fra databasen. Film-ID-en er 18, vi kan bruke skriptet vist nedenfor for å slette raden fra filmtabellen.
DELETE FROM `movies` WHERE `movie_id` = 18;
Å utføre skriptet ovenfor i MySQL WorkBench mot Myflix sletter filmen med id 18 fra databasetabellen.
La oss se gjeldende 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 |
MERK:
- filmen med id 18 har ikke blitt returnert i søkeresultatsettet.
- du kan ikke slette en enkelt kolonne for en tabell. Du kan slette en hel rad.
La oss si at vi har en liste over filmer vi vil slette. Vi kan bruke WHERE-setningen sammen med IN.
DELETE FROM `movies` WHERE `movie_id` IN (20,21);
Ved å utføre ovennevnte skript slettes filmer med ID 20 og 21 fra filmbordet vårt.
Sammendrag
- Slett kommandoen brukes til å fjerne data som ikke lenger er nødvendig fra en tabell.
- "WHERE-setningen" brukes til å begrense antall rader som er berørt av DELETE-spørringen.
- Når data er slettet, kan de ikke gjenopprettes. Det anbefales derfor å ta sikkerhetskopier før du sletter data.