MySQL DELETE lekérdezés: Hogyan lehet törölni a sort a táblából

Tartalomjegyzék:

Anonim

Mi a DELETE lekérdezés?

A MySQL DELETE paranccsal törölhetők a már nem szükséges sorok az adatbázis táblákból. Törli az egész sort a táblából, és visszaadja a törölt sorok számát. A Delete parancs hasznos ideiglenes vagy elavult adatok törléséhez az adatbázisból.

A MySQL lekérdezés törlése egy sorban több sort is törölhet egy táblázatból. Ez előnyöknek bizonyul, ha nagy számú sort távolít el az adatbázis-táblából.

Miután törölt egy sort a MySQL sorban, azt nem lehet helyreállítani. Ezért erősen ajánlott biztonsági másolatot készíteni az adatbázisról, mielőtt az adatokat törölné az adatbázisból. Ez lehetővé teszi az adatbázis visszaállítását és az adatok későbbi megtekintését, ha szükséges.

Sor törlése a MySQL-ben

Egy sor törléséhez a MySQL-ben a DELETE FROM utasítást kell használni:

DELETE FROM `table_name` [WHERE condition];

ITT

  • A DELETE FROM "tábla_neve" utasítja a MySQL szervert, hogy távolítsa el a sorokat a táblából ...
  • A [WHERE feltétel] opcionális, és olyan szűrő elhelyezésére szolgál, amely korlátozza a MySQL DELETE sor lekérdezés által érintett sorok számát.

Ha a WHERE záradékot nem használják a MySQL DELETE lekérdezésben, akkor az adott táblázat összes sora törlődik.

Példa MySQL törlési lekérdezésre

Mielőtt részletesebben a DELETE paranccsal foglalkoznánk, illesszünk be néhány mintaadatot a filmtáblázatba, amellyel együtt dolgozhatunk.

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

A fenti szkript végrehajtása három (3) filmet ad hozzá a mozitáblához. Mielőtt tovább mennénk a leckénkbe, vegyük az összes filmet az asztalunkba. Az alább látható szkript ezt teszi.

SELECT * FROM `movies`;

A fenti parancsfájl végrehajtása a következő eredményeket adja nekünk.

 
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

Tegyük fel, hogy a Myflix videotár nem kívánja többé kiadni a "The Great Dictator" -t a tagjainak, és azt akarják, hogy töröljék az adatbázisból. Filmazonosítója 18, az alább látható szkript segítségével törölhetjük a sorát a mozitábláról.

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

A fenti parancsfájl végrehajtása a MySQL WorkBench alkalmazásban a Myflix ellen törli a 18 azonosítójú filmet az adatbázis táblából.

Nézzük meg a filmek jelenlegi állapotát.

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

JEGYZET:

  • a 18. azonosítójú film nem került vissza a lekérdezés eredményhalmazába.
  • nem törölhet egyetlen oszlopot egy táblához. Egy teljes sort törölhet.

Tegyük fel, hogy van egy listánk azokról a filmekről, amelyeket törölni akarunk. Használhatjuk a WHERE záradékot az IN-vel együtt.

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

A fenti szkript végrehajtása törli a 20. és 21. azonosítójú filmeket a filmtáblázatunkból.

Összegzés

  • A törlés paranccsal olyan adatokat lehet eltávolítani, amelyekre már nincs szükség a táblából.
  • A "WHERE záradék" a DELETE lekérdezés által érintett sorok számának korlátozására szolgál.
  • Az adatok törlése után azokat nem lehet helyreállítani, ezért erősen ajánlott biztonsági másolatot készíteni az adatok törlése előtt.