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:
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:
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:
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 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:
Ha többet szeretne megtudni a JOIN záradékkal rendelkező DELETE utasításról, kattints ide .