SQL - Delete

A DELETE utasítást adatok törlésére használjuk.  Létrehoz egy törlő lekérdezést, amely a FROM záradékban felsorolt táblákból törli azokat a rekordokat, amelyek eleget tesznek a WHERE záradék feltételének.

Szintaxis:

DELETE * FROM tábla
WHERE feltétel

Ha elhagyjuk a WHERE záradékot minden rekord törlésre kerül.

A DELETE utasítás két részből áll:

Tábla - A tábla neve, amelyből a rekordokat törölni kell
Feltétel - A törlendő rekordokat kijelölő kifejezés

Megjegyzés:

A DELETE különösen hasznos, ha sok rekordot szeretnénk törölni
Egész táblát a DROP TABLE utasítással töröljünk. Ha az egész táblát töröljük, akkor annak szerkezete is elvész. Ezzel szemben a DELETE használatakor csak az adatok törlődnek, a tábla szerkezete és minden jellemzője (például a mezőnevek, az indexek) érintetlen marad.
A DELETE segítségével olyan táblákból is törölhetünk rekordokat, amelyek más táblákkal egy-a-többhöz kapcsolatban állnak. Kaszkádolt törlésnél a kapcsolat "több" oldalán levő rekordok is törlődnek, ha a kapcsolat "egy" oldalán levő rekordot törli a lekérdezés. Például a Vevők és a Rendelések tábla esetében a Vevők vannak az "egy" oldalon, a Rendelések a "több" oldalon. Kaszkádolt törlés használatakor a Vevők táblából törölt rekordokkal együtt a hozzájuk tartozó Rendelések rekordok is törlődnek.
A törlő lekérdezés nem egyes mezők adatait törli, hanem a teljes rekordokat. Ha egyes mezők adatait szeretnénk törölni, használjunk frissítő lekérdezést, ami a mezők értékét Null értékre változtatja.
A törlő lekérdezés nem vonható vissza, a törölt rekordok elvesznek. Ha látni szeretnénk a törlendő rekordokat, akkor a törlés előtt először vizsgáljuk meg egy ugyanolyan feltételt használó választó lekérdezés eredményét.
Mindig legyen biztonsági mentés az adatokról. Így ha rossz rekordokat töröltünk, ezek visszanyerhetők.

Kód

Vezetéknév

Keresztnév

Cím

Város

1

Szabó

Péter

Fő út 10.

Budapest

2

Kovács

Áron

Dózsa Gy. út 2.

Debrecen

3

Szalay

Tünde

Széchényi út 69.

Budapest

4

Orosz

Gábor

Virág út 38.

Debrecen

5

Zsólyomi

László

Nagykör út 44.

Békéscsaba

Most szeretnénk törölni a Zsólyomi László adatait a 'Személyek' táblából.

DELETE FROM Személyek
WHERE Vezetéknév='Zsólyomi' AND Keresztnév='László';

Kód

Vezetéknév

Keresztnév

Cím

Város

1

Szabó

Péter

Fő út 10.

Budapest

2

Kovács

Áron

Dózsa Gy. út 2.

Debrecen

3

Szalay

Tünde

Széchényi út 69.

Budapest

4

Orosz

Gábor

Virág út 38.

Debrecen

Összes sor törlése

Lehetőség van törölni a sorokat a tábla törlése nélkül a táblázatban. Ez azt jelenti, hogy a táblázat szerkezete, tulajdonságai, és az indexek is éppek maradnak:

DELETE FROM táblanév

or

DELETE * FROM táblanév

Nagyon óvatosnak kell lenni ezzel az utasítással, ugyanis ezt nem lehet visszavonni!

A hozzászólás csak a regisztrált és bejelentkezett tagok számára engedélyezett!

Oldalainkat 36 vendég böngészi
Látogatóink száma: 2010.07.10 -től