MySQL DELETE vaicājums: Kā izdzēst rindu no tabulas

Satura rādītājs:

Anonim

Kas ir DELETE vaicājums?

MySQL DELETE komandu izmanto, lai izdzēstu no datu bāzes tabulām vairs nevajadzīgas rindas. Tas izdzēš visu tabulas rindu un atgriež izdzēsto rindu skaitu. Komanda Dzēst ir noderīga, lai no datubāzes izdzēstu pagaidu vai novecojušus datus.

Izmantojot MySQL vaicājumu Dzēst, vienā vaicājumā no tabulas var izdzēst vairākas rindas. Tas izrādās priekšrocības, ja no datu bāzes tabulas tiek noņemts liels rindu skaits.

Kad rinda MySQL ir izdzēsta rinda Dzēst, to vairs nevar atjaunot. Tāpēc pirms datu dzēšanas no datu bāzes ir ļoti ieteicams izveidot datu bāzes dublējumus. Tas var ļaut jums atjaunot datu bāzi un skatīt datus vēlāk, ja tas būs nepieciešams.

Kā izdzēst rindu MySQL

Lai izdzēstu rindu MySQL, tiek izmantots priekšraksts DELETE FROM:

DELETE FROM `table_name` [WHERE condition];

ŠEIT

  • DELETE FROM "table_name" liek MySQL serverim noņemt tabulas rindas…
  • [WHERE nosacījums] nav obligāts, un to izmanto, lai ievietotu filtru, kas ierobežo rindu skaitu, uz kuru attiecas rindas vaicājums MySQL DELETE.

Ja WHERE klauzula netiek izmantota MySQL DELETE vaicājumā, visas norādītās tabulas rindas tiks dzēstas.

MySQL Delete Query piemērs

Pirms iedziļināties sīkāk diskusijā par komandu DELETE, ievietosim dažus datu paraugus filmu tabulā, ar kuru strādāt.

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);

Izpildot iepriekš minēto skriptu, filmu tabulā tiek pievienotas trīs (3) filmas. Pirms dodamies tālāk savā nodarbībā, uzņemsim visas filmas savā tabulā. Zemāk parādītais skripts to dara.

SELECT * FROM `movies`;

Izpildot iepriekš minēto skriptu, mēs iegūstam šādus rezultātus.

 
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

Pieņemsim, ka Myflix videotēka vairs nevēlas izīrēt "Lielo diktatoru" saviem biedriem un viņi vēlas, lai tā tiktu noņemta no datu bāzes. Tās filmas ID ir 18, mēs varam izmantot zemāk redzamo skriptu, lai dzēstu tā rindu no filmu tabulas.

DELETE FROM `movies` WHERE `movie_id` = 18;

Izpildot iepriekš minēto skriptu MySQL WorkBench pret Myflix, filma ar ID 18 tiek izdzēsta no datu bāzes tabulas.

Apskatīsim filmu tabulas pašreizējo statusu.

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

PIEZĪME:

  • filma ar ID 18 vaicājuma rezultātu komplektā nav atgriezta.
  • tabulai nevar izdzēst vienu kolonnu. Jūs varat izdzēst visu rindu.

Pieņemsim, ka mums ir to filmu saraksts, kuras mēs vēlamies izdzēst. Mēs varam izmantot klauzulu WHERE kopā ar IN.

DELETE FROM `movies` WHERE `movie_id` IN (20,21);

Veicot iepriekš minēto skriptu, filmas ar ID 20 un 21 tiek dzēstas no mūsu filmu tabulas.

Kopsavilkums

  • Komanda Dzēst tiek izmantota, lai no tabulas noņemtu datus, kas vairs nav nepieciešami.
  • Klauzula WHERE tiek izmantota, lai ierobežotu to rindu skaitu, kuras ietekmē vaicājums DELETE.
  • Kad dati ir izdzēsti, tos vairs nevar atgūt, tāpēc pirms datu dzēšanas ir ļoti ieteicams veikt dublējumus.