DELETE lauseen avulla poistetaan tietueita tietokannasta:


DELETE FROM taulu 
WHERE ehto;

Esimerkki yksittäisen tietueen poistamisesta:


DELETE FROM asiakkaat 
WHERE as_ID = 5;

Esimerkki useiden tietueiden poistamisesta


DELETE FROM asiakkaat 
WHERE as_ID < 50;

Mikäli koko taulukko halutaan tyhjentää kaikesta tiedosta, onnistuu se jättämällä pois WHERE ehto:


DELETE FROM asiakkaat 

DELETE komento on eräs vaarallisimmista SQL-komennoista – käytä sitä harkiten

DELETE komento eroaa muista SQL:n komennoista sikäli, että se poistaa datan taulukosta. Tämä tarkoittaa, että jos DELETE-kysely kohdennetaan väärin, on poistettu tieto palautettava varmuuskopiosta. Tästä syystä kaikki tietoa poistavat SQL-kyselyt pitää suunnitella ja testata huolella. Monimutkaisemmat DELETE-kyselyt kannattaa ensiksi suorittaa kehitys/testiympäristössä, ja vasta sitten tuotannossa.

Yleisin virhe DELETE-kyselyiden kohdalla on väärin kohdennettu ehto. Ennen DELETE-kyselyn suorittamista kannattaa aina testata sama ehto SELECT-kyselyllä ja tarkistaa tulosjoukon, jotta kysely kohdistuu oikeisiin tietueisiin.

Tuotantotietokannoissa kannattaa käyttää lisäksi transaktioita, jolloin virheellisen SQL-kyselyn voi tarvittaessa perua turvallisesti.

Toinen yleinen virhetilanne DELETE-kyselyiden kohdalla on kyselyn kohdentaminen suureen, jopa kymmeniä miljoonia rivejä sisältävään tauluun. Toisin kuin TRUNCATE TABLE-komento, DELETE poistaa tietoa yksi rivi kerrallaan. Huonoimmassa skenaariossa tämä lukitsee kyseisen taulun jopa kymmeniksi minuuteiksi ja aiheuttaa merkittäviä suorituskykyyn liittyviä ongelmia koko tietokantapalvelimme. Tämän kaltaisessa tilanteessa suositeltavinta on suorittaa DELETE-kysely joko pienemmissä palasissa - tai hyödyntää väliaikaista taulua datan käsittelyssä.

Muita yleisiä ongelmatilanteita DELETE-kyselyiden kohdalla ovat muun muassa:

Nämä ja monet muut ongelmatilanteet DELETE-kyselyiden aikana ovat ehkäistävissä kyselyiden huolellisella suunnittelulla ja testauksella. Näitä taitoja sekä datan palauttamista varmuuskopioista voit opiskella turvallisesti tarjoamissamme SQL-koulutuksissa.