SQL DELETE

SQL DELETE


    


DEFINICJA

Polecenie DELETE służy do usuwania rekordów (wierszy) ze wskazanej tabeli. Po poleceniu DELETE określamy gdzie, w której tabeli, chcemy usunąć rekord. Po słówku WHERE definiujemy warunki, które konkretnie rekordy chcemy usunąć. Pamiętaj, z poleceniem DELETE trzeba się obchodzić bardzo starannie, trzeba bardzo jasno określić które rekordy chcemy usunąć, bo można nieodwracalnie usunąć potrzebne rekordy. Przed zastosowaniem polecenia DELETE, dobrą praktyką jest użycie zwykłego SELECT-a w połączeniu z warunkami w WHERE, w celu wizualizacji rekordów które chcesz skasować, wtedy masz pewność, że usuwasz prawidłowe dane.

SQL DELETE składnia

DELETE FROM
    nazwa_tabeli
WHERE
    warunki_filtrowania_rekordów

UWAGA: Jeżeli nie określisz warunków w części WHERE skasujesz wszystkie rekordy we wskazanej tabeli!


Przykład zastosowania DELETE (baza AdventureWorks)

Usuń rekord z tabeli osób dotyczący Terri Duffy.

DELETE FROM
    Person.Person

WHERE
    BusinessEntityID = 2

INFO: Pamiętaj, żeby usunąć ten rekord który chcemy musimy dokładnie określić warunki. Jeżeli chcemy usunąć dokładnie jeden rekord musimy posłużyć się unikalnym polem w skali kolumny który zidentyfikuje ten właśnie rekord. W przypadku tabeli Person.Person w bazie AdventureWorks tym polem jest BusinessEntityID. 

Dlaczego w warunku nie posłużyliśmy się imieniem i nazwiskiem? Dlatego, że jeżeli mielibyśmy taki przypadek, że w bazie znalazłyby się dwie osoby o takim samym imieniu i nazwisko system usunąłby obie.


Przykład zastosowania DELETE (baza Northwind)

Usuń z zamówienie o identyfikatorze 10625 produkt o identyfikatorze 60.

DELETE FROM
    OrderDetails

WHERE
    OrderID = 10625 AND ProductID = 60

INFO: w warunku wskazaliśmy zestawienie dwóch warunków bo taka kombinacja gwarantuje nam już wskazanie jednego, interesującego nas, rekordu.