MySQL DELETE sakinys naudojamas pašalinti iš MySQL lentelės įrašus, kurių duomenų bazėje nebereikia. Ši MySQL užklausa ištrina visą eilutę iš lentelės ir pateikia ištrintų eilučių skaičių . Tai taip pat leidžia mums vienoje užklausoje ištrinti daugiau nei vieną įrašą iš lentelės, o tai naudinga pašalinant iš lentelės daug įrašų. Naudodami trynimo teiginį, mes taip pat galime pašalinti duomenis pagal sąlygas.
Kai ištrinsime įrašus naudodami šią užklausą, negalėsime jų atkurti . Todėl prieš ištrinant bet kokius įrašus iš lentelės, rekomenduojama sukurti atsarginę duomenų bazės kopiją . Duomenų bazės atsarginės kopijos leidžia mums atkurti duomenis, kai tik jų prireiks ateityje.
Sintaksė:
Toliau pateikiama sintaksė, iliustruojanti, kaip naudoti DELETE teiginį:
DELETE FROM table_name WHERE condition;
Aukščiau pateiktame teiginyje pirmiausia turime nurodyti lentelės, iš kurios norime ištrinti duomenis, pavadinimą. Antra, turime nurodyti sąlygą ištrinti įrašus WHERE sąlygoje, kuri yra neprivaloma. Jei sakinyje praleisime sąlygą WHERE, ši užklausa pašalins visus įrašus iš duomenų bazės lentelės.
Jei norime ištrinti įrašus iš kelių lentelių naudodami vieną DELETE užklausą, turime pridėti PRISIJUNK sąlyga su pareiškimu DELETE.
Jei norime ištrinti visus įrašus iš lentelės nežinodami ištrintų eilučių skaičiaus, turime naudoti Sutrumpinta LENTELĖ teiginys, kuris užtikrina geresnį našumą.
Supraskime, kaip veikia DELETE teiginys MySQL per įvairius pavyzdžius.
MySQL DELETE pareiškimo pavyzdžiai
Čia mes ketiname naudoti 'Darbuotojai' ir „Mokėjimas“ lentelės, skirtos DELETE teiginio demonstravimui. Tarkime, kad darbuotojų ir atlyginimų lentelėse yra šie duomenys:
Jei norime ištrinti darbuotoją, kurio emp_id yra 107 , turėtume naudoti teiginį DELETE su sąlyga WHERE. Žiūrėkite žemiau pateiktą užklausą:
mysql> DELETE FROM Employees WHERE emp_id=107;
Įvykdžius užklausą, ji grąžins išvestį, kaip parodyta žemiau esančiame paveikslėlyje. Ištrynę įrašą, patikrinkite lentelę naudodami teiginį SELECT :
Jei norime ištrinti visus įrašus iš lentelės, nereikia naudoti WHERE sąlygos su DELETE sakiniu. Žiūrėkite žemiau esantį kodą ir išvestį:
Aukščiau pateiktame išvestyje matome, kad pašalinus visas eilutes, lentelė Darbuotojai bus tuščia. Tai reiškia, kad pasirinktoje lentelėje nėra įrašų.
poslinkio aukštis
MySQL DELETE ir LIMIT sąlyga
„MySQL Limit“ sąlyga naudojama norint apriboti eilučių skaičių iš rezultatų rinkinio, o ne gauti visus lentelės įrašus. Kartais norime apriboti ištrinamų iš lentelės eilučių skaičių; tokiu atveju naudosime LIMIT išlygą taip:
DELETE FROM table_name WHERE condition ORDER BY colm1, colm2, ... LIMIT row_count;
Reikia pažymėti, kad MySQL lentelės eilučių tvarka nenurodyta. Todėl visada turėtume naudoti RŪŠIUOTI PAGAL Naudodami LIMIT sąlygą.
Pavyzdžiui , ši užklausa pirmiausia surūšiuoja darbuotojus pagal jų vardus abėcėlės tvarka ir iš lentelės ištrina pirmus tris darbuotojus:
mysql> DELETE FROM Employees ORDER BY name LIMIT 3;
Tai duos žemiau pateiktą išvestį:
MySQL DELETE ir JOIN sąlyga
JOIN sąlyga naudojama pridėti dvi ar daugiau lentelių į MySQL. Mes pridėsime sąlygą JOIN su sakiniu DELETE, kai norime ištrinti įrašus iš kelių lentelių vienoje užklausoje. Žiūrėkite žemiau pateiktą užklausą:
mysql> DELETE Employees, Payment FROM Employees INNER JOIN Payment ON Employees.emp_id = Payment.emp_id WHERE Employees.emp_id = 102;
Išvestis:
Po vykdymo pamatysime išvestį kaip žemiau esantį paveikslėlį:
Norėdami perskaityti daugiau informacijos apie DELETE teiginį su JOIN sąlyga, paspauskite čia .