MySQL DELETE-spørring: Slik sletter du rad fra en tabell

Innholdsfortegnelse:

Anonim

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.