logo

MySQL DELETE utasítás

A MySQL DELETE utasítás arra szolgál, hogy eltávolítsa azokat a rekordokat a MySQL táblából, amelyekre már nincs szükség az adatbázisban. Ez a lekérdezés a MySQL-ben egy teljes sort töröl a táblából, és előállítja a törölt sorok számát . Azt is lehetővé teszi, hogy egyetlen lekérdezésben több rekordot is töröljünk a táblából, ami előnyös, miközben nagy számú rekordot távolítunk el egy táblából. A delete utasítás használatával feltételek alapján adatokat is távolíthatunk el.

Miután ezzel a lekérdezéssel töröltük a rekordokat, nem tudjuk visszaállítani . Ezért, mielőtt bármilyen rekordot törölne a táblából, ajánlott készítsen biztonsági másolatot az adatbázisáról . Az adatbázis-mentések lehetővé teszik az adatok visszaállítását, amikor a jövőben szükségünk lesz rá.

Szintaxis:

A következő szintaxis illusztrálja a DELETE utasítás használatát:

 DELETE FROM table_name WHERE condition; 

A fenti utasításban először meg kell adnunk a tábla nevét, amelyből adatokat szeretnénk törölni. Másodszor, meg kell adnunk a rekordok törlésének feltételét a WHERE záradékban, amely nem kötelező. Ha kihagyjuk a WHERE záradékot az utasításból, akkor ez a lekérdezés teljes rekordokat eltávolít az adatbázistáblából.

Ha több táblából szeretnénk rekordokat törölni egyetlen DELETE lekérdezéssel, akkor hozzá kell adnunk a CSATLAKOZIK kikötés a DELETE utasítással.

Ha az összes rekordot törölni szeretnénk egy táblából anélkül, hogy ismernénk a törölt sorok számát, akkor a CSONKA TÁBLÁZAT jobb teljesítményt nyújtó nyilatkozat.

Nézzük meg, hogyan működik a DELETE utasítás MySQL különféle példákon keresztül.

Példák a MySQL DELETE utasításra

Itt fogjuk használni a 'Alkalmazottak' és 'Fizetés' táblázatok a DELETE utasítás demonstrálásához. Tegyük fel, hogy az Alkalmazottak és a Kifizetés táblák a következő adatokat tartalmazzák:

mysql törlési lekérdezés
mysql törlési lekérdezés

Ha törölni akarunk egy alkalmazottat, akinek Az emp_id értéke 107 , használjuk a DELETE utasítást a WHERE záradékkal. Lásd az alábbi lekérdezést:

 mysql> DELETE FROM Employees WHERE emp_id=107; 

A lekérdezés végrehajtása után a kimenetet az alábbi kép szerint adja vissza. A rekord törlése után ellenőrizze a táblát a SELECT utasítással:

mysql törlési lekérdezés

Ha az összes rekordot törölni akarjuk a táblából, akkor nem kell a WHERE záradékot használni a DELETE utasítással. Lásd az alábbi kódot és kimenetet:

mysql törlési lekérdezés

A fenti kimenetben láthatjuk, hogy az összes sor eltávolítása után az Employees tábla üres lesz. Ez azt jelenti, hogy a kiválasztott táblában nincsenek rekordok.

MySQL DELETE és LIMIT záradék

A MySQL Limit záradék az eredménykészletből visszaadott sorok számának korlátozására szolgál, ahelyett, hogy a tábla teljes rekordját kérné le. Néha korlátozni akarjuk a táblázatból törölni kívánt sorok számát; ebben az esetben a HATÁR záradék a következőképpen:

 DELETE FROM table_name WHERE condition ORDER BY colm1, colm2, ... LIMIT row_count; 

Megjegyzendő, hogy a MySQL-táblázatban a sorok sorrendje nincs meghatározva. Ezért mindig használjuk a RENDEZÉS záradékot a LIMIT záradék használata közben.

Például , a következő lekérdezés először ábécé sorrendbe rendezi az alkalmazottakat a nevük szerint, és törli az első három alkalmazottat a táblázatból:

 mysql> DELETE FROM Employees ORDER BY name LIMIT 3; 

Az alábbi kimenetet adja:

mysql törlési lekérdezés

MySQL DELETE és JOIN záradék

A JOIN záradék két vagy több tábla hozzáadására szolgál a MySQL-ben. A JOIN záradékot hozzáadjuk a DELETE utasításhoz, amikor egyetlen lekérdezésben több táblából szeretnénk rekordokat törölni. Lásd az alábbi lekérdezést:

 mysql> DELETE Employees, Payment FROM Employees INNER JOIN Payment ON Employees.emp_id = Payment.emp_id WHERE Employees.emp_id = 102; 

Kimenet:

A végrehajtás után az alábbi képen láthatjuk a kimenetet:

mysql törlési lekérdezés

Ha többet szeretne megtudni a JOIN záradékkal rendelkező DELETE utasításról, kattints ide .