logo

MySQL DELETE Statement

MySQL DELETE-satsen används för att ta bort poster från MySQL-tabellen som inte längre krävs i databasen. Denna fråga i MySQL tar bort en hel rad från tabellen och producerar antalet raderade rader . Det tillåter oss också att ta bort mer än en post från tabellen inom en enda fråga, vilket är fördelaktigt samtidigt som vi tar bort ett stort antal poster från en tabell. Genom att använda raderingssatsen kan vi också ta bort data baserat på villkor.

När vi väl har raderat posterna med den här frågan kan vi inte återställa dem . Därför rekommenderas det att innan du tar bort några poster från tabellen skapa en säkerhetskopia av din databas . Databassäkerhetskopiorna gör att vi kan återställa data när vi behöver det i framtiden.

Syntax:

Följande är syntaxen som illustrerar hur du använder DELETE-satsen:

 DELETE FROM table_name WHERE condition; 

I ovanstående uttalande måste vi först ange tabellnamnet från vilket vi vill ta bort data. För det andra måste vi ange villkoret för att radera poster i WHERE-satsen , vilket är valfritt. Om vi ​​utelämnar WHERE-satsen i satsen kommer denna fråga att ta bort hela poster från databastabellen.

Om vi ​​vill ta bort poster från flera tabeller med en enda DELETE-fråga måste vi lägga till ANSLUTA SIG klausul med DELETE-satsen.

Om vi ​​vill ta bort alla poster från en tabell utan att veta antalet raderade rader, måste vi använda TRUNKERA BORD uttalande som ger bättre prestanda.

klustring

Låt oss förstå hur DELETE-satsen fungerar i MySQL genom olika exempel.

MySQL DELETE Statement Exempel

Här kommer vi att använda 'Anställda' och 'Betalning' tabeller för demonstration av DELETE-satsen. Anta att tabellerna för anställda och betalningar innehåller följande data:

mysql raderingsfråga
mysql raderingsfråga

Om vi ​​vill ta bort en anställd vars emp_id är 107 , bör vi använda DELETE-satsen med WHERE-satsen. Se frågan nedan:

 mysql> DELETE FROM Employees WHERE emp_id=107; 

Efter exekveringen av frågan kommer den att returnera utdata enligt bilden nedan. När posten har raderats, verifiera tabellen med hjälp av SELECT-satsen:

mysql raderingsfråga

Om vi ​​vill ta bort alla poster från tabellen finns det inget behov av att använda WHERE-satsen med DELETE-satsen. Se nedanstående kod och utdata:

mysql raderingsfråga

I utgången ovan kan vi se att efter att ha tagit bort alla rader kommer tabellen Anställda att vara tom. Det betyder att inga poster är tillgängliga i den valda tabellen.

MySQL DELETE och LIMIT klausul

MySQL Limit-satsen används för att begränsa antalet rader som returneras från resultatuppsättningen, snarare än att hämta hela posterna i tabellen. Ibland vill vi begränsa antalet rader som ska raderas från tabellen; i så fall kommer vi att använda BEGRÄNSA klausul enligt följande:

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

Det är att notera att ordningen på rader i en MySQL-tabell är ospecificerad. Därför bör vi alltid använda SORTERA EFTER medan du använder LIMIT-satsen.

Till exempel , sorterar följande fråga först medarbetarna efter deras namn alfabetiskt och tar bort de tre första anställda från tabellen:

 mysql> DELETE FROM Employees ORDER BY name LIMIT 3; 

Det kommer att ge följande utdata:

mysql raderingsfråga

MySQL DELETE and JOIN-klausul

JOIN-satsen används för att lägga till de två eller flera tabellerna i MySQL. Vi kommer att lägga till JOIN-satsen med DELETE-satsen när vi vill ta bort poster från flera tabeller inom en enda fråga. Se frågan nedan:

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

Produktion:

Efter exekvering kommer vi att se utdata som nedanstående bild:

mysql raderingsfråga

För att läsa mer information om DELETE-satsen med JOIN-klausulen, Klicka här .