DELETE FROM <Tabelle>Dies löscht den Inhalt der gesamten angegebenen Tabelle. Die Tabelle selbst wird nicht gelöscht, das Ergebnis ist eine leere Tabelle.
DELETE FROM <Tabelle> WHERE <Bedingung>Dies löscht alle Zeilen der Tabelle, für welche die Bedingung zutrifft.
DELETE FROM <Tabelle> FROM <Tabelle> [[INNER | LEFT | RIGHT] JOIN] <Tabelle> ON <JOIN-Bedingung> [weitere JOIN-Klauseln] WHERE <Bedingung>Diese ANSI- bzw. Ms-SqlServer-Syntax ermöglicht, analog zur UPDATE-Klausel, das Festlegen weiterer Kriterien zur Auswahl der zu löschenden Zeilen. Nur jene Zeilen, welche den Verknüpfungsbedingungen der JOIN-Klausel entsprechen, werden gelöscht.
DELETE FROM ARTIKELDies löscht alle Zeilen der Tabelle Artikel.
DELETE FROM ARTIKEL WHERE A_NR = 11Dies löscht nur die Zeile mit der Artikel-Nummer 11.
DELETE FROM UMSATZ FROM UMSATZ As U INNER JOIN ARTIKEL As A On U.A_NR = A.A_NR WHERE A_NR = 11Dies löscht in der Tabelle UMSATZ alle Zeilen, welche sich auf den Artikel 11 beziehen.
DELETE FROM UMSATZ FROM ARTIKELAs A INNER JOIN UMSATZ As U ON A.A_NR = U.A_NR INNER JOIN (SELECT B.A_NR, MAX(B.A_PREIS * C.A_STUECK) As Maximum FROM Artikel As B Inner Join Umsatz As C On B.A_Nr = C.A_Nr Group By B.A_NR) As D On U.A_NR = D.A_NR And A.A_PREIS * U.A_STUECK < D.MaximumDiese nur noch auf ANSI-kompatiblen DBMS funktionierende Beispiel bestimmt zunächst über die Unterabfrage zu jeder Artikelnummer den höchsten Einzelumsatz. Die JOIN-Anweisung verknüpft diese aus zwei Spalten und vier Zeilen bestehende Tabelle mit den beiden anderen Tabellen, so daß zunächst die Artikelnummern einander zugeordnet sind und zusätzlich alle Zeilen ausgewählt werden, deren Produkt aus A_Preis und A_Stueck kleiner dem Maximum für diesen Artikel ist. Diese Zeilen werden gelöscht.
INSERT INTO ARTIKEL (A_NR, A_NAME, A_PREIS) VALUES(55, 'Jeans', 99.90)Mit diesem Artikel ist kein Umsatz gemacht worden, er soll deshalb gelöscht werden.
DELETE FROM ARTIKEL FROM ARTIKEL As A LEFT JOIN UMSATZ As U On A.A_NR = U.A_NR WHERE U.UMSATZ_NR IS NULL
Wenn Sie mit dem OSql.exe interaktiv eine DosBox geöffnet haben, so können Sie schrittweise die folgenden Zeilen aus dem linken Fenster eingeben und jeweils anschließend mit Return bestätigen.
Begin Transaction go Select * From Umsatz go Delete From Umsatz Where A_Nr < 13 go Select * From Umsatz go RollBack Transaction go Select * From Umsatz | Transaktion starten Ausgabe von 9 Zeilen Löschen aller Zeilen mit A_Nr < 13 Ausgabe 4 Zeilen Transaktion zurücksetzen Ausgabe von wieder 9 Zeilen |