DELETE Oracle/PLSQL

In diesem Oracle-Lernprogramm wird die Verwendung der Oracle DELETE-Anweisung mit Syntax, Beispielen und Übungsübungen erläutert.

Beschreibung

Die Oracle-Anweisung DELETE wird zum Löschen eines einzelnen Datensatzes oder mehrerer Datensätze aus einer Tabelle in Oracle verwendet.

Syntax

Die Syntax für die DELETE-Anweisung in Oracle/PLSQL lautet:

DELETE FROM table
[WHERE conditions];

Parameter oder Argumente

table Die Tabelle, aus der Sie Datensätze löschen möchten.

WHERE conditions Wahlweise. Die Bedingungen, die erfüllt sein müssen, damit die Datensätze gelöscht werden. Wenn keine Bedingungen angegeben werden, werden alle Datensätze aus der Tabelle gelöscht.

Notiz

  • Sie müssen keine Felder in der Oracle DELETE-Anweisung auflisten, da Sie die gesamte Zeile aus der Tabelle löschen.

Beispiel – Verwendung einer Bedingung

Schauen wir uns ein einfaches Oracle DELETE-Abfragebeispiel an, bei dem in der DELETE-Anweisung nur eine Bedingung vorliegt.
Beispielsweise:

Dieses Oracle DELETE-Beispiel löscht alle Datensätze aus der Tabelle customers, wobei last_name ‚John‘ ist.

Möglicherweise möchten Sie nach der Anzahl der zu löschenden Zeilen suchen. Sie können die Anzahl der zu löschenden Zeilen ermitteln, indem Sie vor dem Löschen die folgende Oracle SELECT-Anweisung ausführen.

Beispiel – Zwei Bedingungen verwenden

Schauen wir uns ein Oracle-DELETE-Beispiel an, bei dem in der DELETE-Anweisung nur zwei Bedingungen vorliegen.

Beispielsweise:

Dieses Oracle DELETE-Beispiel löscht alle Datensätze aus der Tabelle customers, wobei der Name last_name ‚Anderson‘ und der customer_id ist größer als 25.

Möglicherweise möchten Sie nach der Anzahl der zu löschenden Zeilen suchen. Sie können die Anzahl der zu löschenden Zeilen ermitteln, indem Sie vor dem Löschen die folgende Oracle SELECT-Anweisung ausführen.

Example – Using EXISTS Clause

Sie können auch kompliziertere Löschungen durchführen.

Möglicherweise möchten Sie Datensätze in einer Tabelle basierend auf Werten in einer anderen Tabelle löschen. Da Sie nicht mehr als eine Tabelle in der Oracle FROM-Klausel auflisten können, wenn Sie ein Löschen durchführen, können Sie die Oracle EXISTS-Klausel verwenden.

Beispielsweise:

In diesem Oracle-DELETE-Beispiel würden alle Datensätze in der Tabelle suppliers gelöscht, wobei in der Tabelle customers ein Datensatz vorhanden ist, dessen customer_id ist größer als 25 und die customer_id entspricht der supplier_id.

Wenn Sie die Anzahl der zu löschenden Zeilen ermitteln möchten, können Sie vor dem Löschen die folgende Oracle SELECT-Anweisung ausführen.

Häufig gestellte Fragen

Frage:

Wie schreibe ich eine Oracle DELETE-Anweisung, um alle Datensätze in TableA zu löschen, deren Daten in Feld1 und Feld2 NICHT mit den Daten in Feldx & Feldz von TableB übereinstimmen?

Antwort:

Sie könnten für Ihre Oracle DELETE-Anweisung Folgendes versuchen:

Übungsübung Nr. 1:

Löschen Sie basierend auf der contacts tabelle alle Einträge aus der contacts tabelle, die sich in der Stadt ‚Seattle‘ befinden und deren first_name Bill ist.

Lösung für Übung Übung 1:

Die folgende Oracle-Anweisung DELETE löscht diese Datensätze aus der contacts tabelle:

Übungsübung Nr. 2:

Löschen Sie basierend auf der contacts tabelle alle Datensätze aus der contacts tabelle, deren contact_id größer oder gleich 5000 und kleiner als 6000 ist.

Lösung für Übung Übung 2:

Die folgende Oracle-Anweisung DELETE löscht diese Datensätze aus der contacts tabelle:

Oder Sie schreiben die Lösung mit der Klausel BETWEEN wie folgt: