DELETE¶
Entfernt Zeilen aus einer Tabelle. Sie können eine WHERE-Klausel verwenden, um anzugeben, welche Zeilen entfernt werden sollen. Wenn Sie Unterabfragen oder zusätzliche Tabellen verwenden müssen, um die zu entfernenden Zeilen zu identifizieren, geben Sie die Unterabfragen oder Tabellen in einer USING-Klausel an.
Wichtig
Im Gegensatz zu TRUNCATE TABLE löscht dieser Befehl nicht den Ladeverlauf der externen Datei. Wenn Sie Zeilen löschen, die aus einer bereitgestellten Datei in die Tabelle geladen wurden, können Sie die Daten aus dieser Datei nur dann erneut laden, wenn Sie die Datei ändern und erneut bereitstellen.
Syntax¶
Erforderliche Parameter¶
table_nameGibt die Tabelle an, aus der die Zeilen entfernt werden.
Optionale Parameter¶
USING additional_table_or_query [, ... ]Wenn Sie in der WHERE-Klausel auf zusätzliche Tabellen verweisen müssen, um die zu entfernenden Zeilen zu identifizieren, dann geben Sie diese Tabellennamen in der USING-Klausel an. Sie können die USING-Klausel auch verwenden, um Unterabfragen anzugeben, mit denen die zu entfernenden Zeilen identifiziert werden.
Wenn Sie eine Unterabfrage angeben, dann setzen Sie die Unterabfrage in Klammern.
Wenn Sie mehr als eine Tabelle oder Abfrage angeben, verwenden Sie ein Komma, um diese voneinander zu trennen.
WHERE conditionGibt eine Bedingung an, mit der die zu entfernenden Zeilen ausgewählt werden sollen. Wenn dieser Parameter weggelassen wird, werden alle Zeilen in der Tabelle entfernt, aber die Tabelle bleibt erhalten.
Nutzungshinweise¶
Beim Löschen auf der Grundlage von JOIN (durch Angabe einer
USING-Klausel) ist es möglich, dass eine Zeile in der Zieltabelle mit mehreren Zeilen in der/denUSING-Tabelle(n) verbunden wird. Wenn die DELETE-Bedingung für eine der verknüpften Kombinationen erfüllt ist, wird die Zielzeile gelöscht.Beispielsweise gilt für die gegebenen Tabellen
tab1undtab2mit den Spalten(k number, v number)Folgendes:Wenn Sie die folgende Abfrage ausführen, wird die Zeile in
tab1mit beiden Zeilen vontab2verbunden:Da mindestens ein verknüpftes Paar die Bedingung erfüllt, wird die Zeile gelöscht. Daher ist
tab1nach Abschluss der Anweisung leer.
Beispiele¶
Angenommen, eine Organisation, die Fahrräder vermietet, verwendet die folgenden Tabellen:
Die Tabelle mit dem Namen „leased_bicycles“ listet die Fahrräder auf, die vermietet wurden.
Die Tabelle mit dem Namen „returned_bicycles“ listet Fahrräder auf, die kürzlich zurückgegeben wurden. Diese Fahrräder müssen aus der Tabelle der gemieteten Fahrräder entfernt werden.
Tabelle erstellen:
Daten laden:
Dieses Beispiel zeigt, wie Sie die WHERE-Klausel verwenden, um bestimmte Zeilen zu löschen. Im folgenden Beispiel wird nach „bicycle_ID“ gelöscht:
Daten nach dem Löschen anzeigen:
Dieses Beispiel zeigt, wie Sie die USING-Klausel verwenden, um zu löschende Zeilen anzugeben. Diese USING-Klausel gibt die Tabelle „returned_bicycles“ an, die die IDs der Fahrräder auflistet, die aus der Tabelle „leased_bicycles“ gelöscht werden sollen. Die WHERE-Klausel verbindet die Tabelle „leased_bicycles“ mit der Tabelle „returned_bicycles“, und die Zeilen in „leased_bicycles“, die dieselbe „bicycle_ID“ wie die entsprechenden Zeilen in „returned_bicycles“ aufweisen, werden gelöscht.
(Um zu vermeiden, dass dieselben Zeilen in Zukunft erneut entfernt werden, wenn dies unnötig oder unangebracht ist, wird die Tabelle „returned_bicycles“ im Zuge derselben Transaktion abgeschnitten).
Daten nach dem Löschen anzeigen:
Nehmen Sie nun an, dass andere Fahrräder zurückgegeben werden:
Die folgende Abfrage zeigt eine USING-Klausel, die eine Unterabfrage (statt einer Tabelle) enthält, um anzugeben, welche „bicycle_ID“ aus der Tabelle „leased_bicycles“ entfernt werden soll:
Daten nach dem Löschen anzeigen: