PostgreSQL Zeilen aus der Auswahl löschen
⚡ Intelligente Zusammenfassung
PostgreSQL Mit DELETE werden eine oder mehrere Zeilen aus einer Tabelle entfernt. In Kombination mit einer WHERE-Klausel werden nur die Datensätze ausgewählt, die einer bestimmten Bedingung entsprechen. Wird die WHERE-Klausel weggelassen, werden alle Zeilen in der Tabelle gelöscht.

Abfrage löschen in PostgreSQL
Das DELETE-Anweisung in PostgreSQL Wird verwendet, um einen oder mehrere Datensätze aus einer Tabelle zu löschen. Um nur ausgewählte Zeilen aus einer Tabelle zu löschen, PostgreSQL Ermöglicht es Ihnen, die DELETE-Anweisung mit der WHERE-Klausel zu kombinieren; andernfalls werden alle Datensätze in der Tabelle gelöscht.
PostgreSQL Syntax für Löschabfragen
Die DELETE-Anweisung kann mit der folgenden Syntax definiert werden:
[ WITH [ RECURSIVE ] with-query [, ...] ] DELETE FROM [ ONLY ] table-name [ * ] [ [ AS ] alias ] [ USING using-list ] [ WHERE condition(s) | WHERE CURRENT OF cursor-name] [ RETURNING * | output-expression [ [ AS ] output-name] [, ...] ]
Kenngrößen
Folgende Parameter stehen zur VerfĂĽgung:
- mit-AbfrageMit der WITH-Klausel können Sie innerhalb der DELETE-Abfrage auf eine oder mehrere Unterabfragen anhand ihres Namens verweisen.
- Tabellenname: der Name der Tabelle, aus der Datensätze gelöscht werden sollen.
- alias: ein Ersatz fĂĽr den Namen der Zieltabelle.
- using-list: Tabellenausdrücke, die es ermöglichen, Spalten aus anderen Tabellen in der WHERE-Klausel zu verwenden.
- Bedingungen)Optional. Dies sind die Bedingungen, die für das Löschen von Datensätzen erfüllt sein müssen. Wird dieser Abschnitt nicht angegeben, werden alle Datensätze mit dem Tabellennamen gelöscht.
- CursornameDer Cursor, der in der WHERE CURRENT OF-Bedingung verwendet werden soll. Die letzte von diesem Cursor abgerufene Zeile wird gelöscht.
- Ausgabeausdruck: der Ausdruck, der von der DELETE-Anweisung nach dem Löschen jeder Zeile verarbeitet und zurückgegeben wird.
- Ausgabename: der Name, der fĂĽr die zurĂĽckgegebene Spalte verwendet werden soll.
Beachten Sie, dass die DELETE-Anweisung die gesamte Zeile löscht, daher müssen Sie die Spaltennamen nicht angeben.
PostgreSQL Abfrage mit einer Bedingung löschen
Die DELETE-Anweisung kann mit einer einzigen Bedingung verwendet werden, die mithilfe der WHERE-Klausel festgelegt wird. Betrachten Sie die Tabelle „Preis“ mit den folgenden Daten:
Preis:
Löschen wir den Datensatz mit der ID 4:
DELETE FROM Price WHERE id = 4;
Der obige Befehl löscht die Datensätze mit der ID 4. Lassen Sie uns überprüfen, ob das Löschen erfolgreich war:
Die Zeile mit der ID 4 wurde gelöscht.
Abfrage mit zwei Bedingungen löschen
Das PostgreSQL Die DELETE-Anweisung kann auch zwei Bedingungen enthalten. Die beiden Bedingungen mĂĽssen mit dem AND-Operator verknĂĽpft werden. Wir verwenden dazu die folgende Tabelle:
Preis:
Betrachten Sie das folgende Beispiel:
DELETE FROM Price WHERE id = 3 AND price = 300;
Im obigen Befehl löschen wir die Zeile mit der ID 3 und dem Preis 300. Wir können nun die Tabelle abfragen:
SELECT * FROM Price;
Dies gibt Folgendes zurĂĽck:
Der Datensatz mit der ID 3 und dem Preis 300 wurde gelöscht.
PostgreSQL Löschabfrage mit EXISTS-Bedingung
Mit der VORHANDEN Unter bestimmten Bedingungen können Sie den DELETE-Vorgang komplexer gestalten. Manchmal kann es erforderlich sein, Datensätze in einer Tabelle basierend auf Datensätzen in einer anderen Tabelle zu löschen.
Da die FROM-Klausel beim Löschen keine Datensätze aus mehr als einer Tabelle auflistet, ist die EXISTS-Klausel sehr nützlich. Wir haben die folgenden zwei Tabellen:
Buch:
Preis:
Wir können dann die folgende Abfrage ausführen:
DELETE FROM Book WHERE EXISTS (SELECT 1 FROM Price WHERE Price.id = Book.id AND price < 250 );
Der Befehl löscht Zeilen aus der Tabelle „Buch“, die eine übereinstimmende ID in der Tabelle „Preis“ mit einem Preis unter 250 haben.
Die Buchtabelle sieht nun wie folgt aus:
Der Datensatz mit der ID 1 wurde gelöscht.
Wie man eine Zeile löscht PostgreSQL mit pgAdmin
Die gleichen Löschabfragen können auch visuell über die pgAdmin-Oberfläche ausgeführt werden. Gehen Sie dazu wie folgt vor:
Mit einer Bedingung
Schritt 1) Melden Sie sich bei Ihrem pgAdmin-Konto an. Ă–ffnen Sie pgAdmin und melden Sie sich mit Ihren Zugangsdaten an.
Schritt 2) Erstellen Sie eine Demo-Datenbank.
- Klicken Sie in der Navigationsleiste links auf Datenbanken.
- Klicken Sie auf Demo.
Schritt 3) Geben Sie die folgende Abfrage in den Abfrageeditor ein:
DELETE FROM Price WHERE id = 4;
Schritt 4) Klicken Sie auf die Schaltfläche „Ausführen“.
Schritt 5) Lassen Sie uns prüfen, ob die Zeile gelöscht wurde:
Mit zwei Bedingungen
Schritt 1) Melden Sie sich bei Ihrem pgAdmin-Konto an.
Schritt 2)
- Klicken Sie in der Navigationsleiste links auf Datenbanken.
- Klicken Sie auf Demo.
Schritt 3) Geben Sie die Abfrage im Abfrageeditor ein:
DELETE FROM Price WHERE id = 3 AND price = 300;
Schritt 4) Klicken Sie auf die Schaltfläche „Ausführen“.
Schritt 5) Lassen Sie uns prüfen, ob die Löschung erfolgreich war:
Verwendung der EXISTS-Bedingung
Schritt 1) Melden Sie sich bei Ihrem pgAdmin-Konto an.
Schritt 2)
- Klicken Sie in der Navigationsleiste links auf Datenbanken.
- Klicken Sie auf Demo.
Schritt 3) Geben Sie die Abfrage im Abfrageeditor ein:
DELETE FROM Book WHERE EXISTS (SELECT 1 FROM Price WHERE Price.id = Book.id AND price < 250 );
Schritt 4) Klicken Sie auf die Schaltfläche „Ausführen“.
Schritt 5) Lassen Sie uns prüfen, ob die Löschung erfolgreich war:
Laden Sie die in diesem Tutorial verwendete Datenbank herunter
















