PostgreSQL Abfrage löschen (Zeilen aus Auswahl löschen)
Abfrage löschen in PostgreSQL
Der Anweisung löschen in PostgreSQL wird verwendet, um einen oder mehrere Datensätze aus einer Tabelle zu löschen. Wenn Sie ausgewählte Zeilen aus einer Tabelle löschen möchten PostgreSQL ermöglicht es Ihnen, die DELETE-Anweisung mit der WHERE-Klausel zu kombinieren, andernfalls werden alle Datensätze gelöscht.
Postgres-Löschabfragesyntax
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
- mit-Abfrage: Mit der WITH-Klausel können wir auf eine oder mehrere Unterabfragen verweisen, auf die in der DELETE-Abfrage namentlich verwiesen werden soll.
- Tabellenname: der Name der Tabelle, aus der Datensätze gelöscht werden sollen.
- alias: Dies ist ein Ersatz für den Namen der Zieltabelle.
- using-list: Tabellenausdrücke, um die Verwendung von Spalten aus anderen Tabellen in der WHERE-Klausel zu ermöglichen.
- Bedingungen): Optional. Dies sind die Bedingungen, die erfüllt sein müssen, damit Datensätze gelöscht werden. Wenn dieser Abschnitt nicht angegeben wird, werden alle Tabellennamen-Datensätze gelöscht.
- Cursorname: Der Cursor, der in der WHERE CURRENT OF-Bedingung verwendet werden soll. Die zuletzt von diesem Cursor abgerufene Zeile wird gelöscht.
- Ausgabeausdruck: Der Ausdruck, der nach dem Löschen jeder Zeile von der DELETE-Anweisung verarbeitet und zurückgegeben werden soll.
- Ausgabename: der Name, der für die zurückgegebene Spalte verwendet werden soll.
Beachten Sie, dass Sie die Spaltennamen nicht angeben müssen, da die DELETE-Anweisung die gesamte Zeile löscht.
PostgreSQL Abfrage mit einer Bedingung löschen
Die DELETE-Anweisung kann mit einer einzigen Bedingung verwendet werden. Die Bedingung wird mithilfe der WHERE-Klausel festgelegt. 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 bestätigen, ob der Löschvorgang erfolgreich war:
Die Zeile mit der ID 4 wurde gelöscht.
Abfrage mit zwei Bedingungen löschen
Der PostgreSQL Die DELETE-Anweisung kann zwei Bedingungen annehmen. Die beiden Bedingungen sollten mit dem AND-Operator verknüpft werden. Wir verwenden die folgende Tabelle:
Preis:
Betrachten Sie das folgende Beispiel:
DELETE FROM Price WHERE id = 3Y AND price = 300;
Im obigen Befehl löschen wir die Zeile, in der die ID 3 und der Preis 300 ist. Jetzt können wir 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 Abfrage mithilfe der Bedingung „Vorhanden“ löschen
Mit der Bedingung EXISTS können Sie das Löschen komplexer gestalten. Manchmal kann es erforderlich sein, Datensätze in einer Tabelle basierend auf Datensätzen in einer anderen Tabelle zu löschen.
Sie werden sehen, dass die FROM-Klausel es Ihnen nicht erlaubt, beim Löschen Datensätze aus mehr als einer Tabelle aufzulisten. Die EXISTS-Klausel ist 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 obige Befehl löscht aus der Buchtabelle, wenn in der Preistabelle ein Datensatz vorhanden ist, dessen ID mit der der Buchtabelle übereinstimmt und der Preis unter 250 liegt.
Die Buchtabelle sieht nun wie folgt aus:
Der Datensatz mit der ID 1 wurde gelöscht.
So löschen Sie eine Zeile in PostgreSQL mit pgAdmin
Im Folgenden finden Sie die Schritte zum Löschen einer Zeile in PostgreSQL mit pgAdmin:
Mit einer Bedingung
Um dasselbe über pgAdmin zu erreichen, gehen Sie wie folgt vor:
Schritt 1) Melden Sie sich bei Ihrem pgAdmin-Konto an
Öffnen Sie pgAdmin und melden Sie sich mit Ihren Anmeldeinformationen bei Ihrem Konto 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 Abfrage ein
Geben Sie die folgende Abfrage in den Abfrageeditor ein:
DELETE FROM Price WHERE id = 4;
Schritt 4) Führen Sie die Abfrage aus
Klicken Sie auf die Schaltfläche „Ausführen“.
Schritt 5) Überprüfen Sie, ob die Zeile gelöscht ist
Lassen Sie uns prüfen, ob die Löschung erfolgreich war:
Mit zwei Bedingungen
Um dasselbe über pgAdmin zu erreichen, gehen Sie wie folgt vor:
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
Um dasselbe über pgAdmin zu erreichen, gehen Sie wie folgt vor:
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:
Zusammenfassung
- Die DELETE-Anweisung wird zum Löschen eines oder mehrerer Datensätze aus einer Tabelle verwendet.
- Um nur ausgewählte Zeilen aus einer Tabelle zu löschen, können Sie die DELETE-Anweisung mit der WHERE-Klausel kombinieren.
- Wenn die DELETE-Klausel ohne die WHERE-Klausel verwendet wird, werden alle Datensätze aus der Tabelle gelöscht.
- Mit dem Parameter „table-name“ können Sie den Namen der Tabelle hinzufügen, aus der Datensätze gelöscht werden sollen.
- Wir können die DELETE-Anweisung mit einer Bedingung verwenden, die mithilfe der WHERE-Klausel angegeben wird.
- Die DELETE-Anweisung kann auch mit zwei in der WHERE-Klausel angegebenen Bedingungen verwendet werden. Die beiden Bedingungen sollten mit dem AND-Operator verknüpft werden.
- Der VORHANDEN Bedingung kann uns helfen, Datensätze aus einer Tabelle basierend auf den Datensätzen einer anderen Tabelle zu löschen.
Laden Sie die in diesem Tutorial verwendete Datenbank herunter