PostgreSQL EXISTS mit SELECT Operator (Beispiel)
โก Intelligente Zusammenfassung
PostgreSQL EXISTS ist ein boolescher Operator, der prรผft, ob eine korrelierte Unterabfrage eine Zeile zurรผckgibt, wodurch SELECT-, INSERT-, UPDATE- und DELETE-Anweisungen Daten effizient nach dem Vorhandensein oder Fehlen รผbereinstimmender Datensรคtze filtern kรถnnen.

Was ist EXISTS in PostgreSQL?
Das PostgreSQL VORHANDEN Der Operator EXISTS prรผft, ob eine oder mehrere Zeilen in einer Unterabfrage vorhanden sind. Er wird also immer zusammen mit einer Unterabfrage verwendet. Die Bedingung des Operators EXISTS ist erfรผllt, wenn mindestens eine Zeile in der Unterabfrage gefunden wird. Diese Operation kann zusammen mit SELECT-, UPDATE-, INSERT- und DELETE-Anweisungen verwendet werden.
PostgreSQL EXISTS-Abfragesyntax
Hier ist die Syntax fรผr PostgreSQL EXISTS-Anweisung:
WHERE EXISTS (subquery);
Die obige Syntax zeigt, dass der EXISTS-Operator ein Argument annimmt, das eine Unterabfrage ist. Die Unterabfrage ist einfach eine SELECT-Anweisung das sollte mit einem SELECT * statt einer Liste von Spaltennamen oder Ausdrรผcken beginnen.
PostgreSQL EXISTS mit SELECT-Anweisung
Schauen wir uns an, wie man eine SELECT-Anweisung mit dem EXISTS-Operator verwendet. Wir haben die folgenden Tabellen:
Buch:
Preis:
Fรผhren Sie die folgende Anweisung aus:
SELECT * FROM Book WHERE EXISTS (SELECT * FROM Price WHERE Book.id = Price.id);
Dies gibt Folgendes zurรผck:
Der obige Befehl sollte alle Datensรคtze in der Buchtabelle zurรผckgeben, deren ID mit der ID aller Datensรคtze der Unterabfrage รผbereinstimmt. Es wurde nur eine ID gefunden. Daher wurde nur ein Datensatz zurรผckgegeben.
PostgreSQL EXISTS mit INSERT-Anweisung
Wir kรถnnen den EXISTS-Operator in einem INSERT-Anweisung. Wir haben die folgenden 3 Tabellen:
Buch:
Preis:
Preis2:
Wir kรถnnen dann die folgende Anweisung ausfรผhren:
INSERT INTO Price SELECT id, price FROM Price2 WHERE EXISTS (SELECT id FROM Book WHERE Book.id = Price2.id);
Die Preistabelle sieht nun wie folgt aus:
Die Zeile mit der ID 5 in der Tabelle โPrice2โ wurde abgeglichen. Dieser Datensatz wurde dann in die Preistabelle eingefรผgt.
PostgreSQL EXISTS mit UPDATE-Anweisung
Wir kรถnnen den EXISTS-Operator in einer UPDATE-Anweisung verwenden.
Fรผhren Sie die folgende Abfrage aus:
UPDATE Price SET price = (SELECT price FROM Price2 WHERE Price2.id = Price.id) WHERE EXISTS (SELECT id, price FROM Price2 WHERE Price2.id = Price.id);
Wir aktualisieren die Preisspalte der Preistabelle. Unser Ziel ist es, dass die Preise von Artikeln mit einer gemeinsamen ID gleich sind. Nur eine Zeile stimmte รผberein, nรคmlich 5.
Da die Preise jedoch gleich sind, also 205, wurde keine Aktualisierung vorgenommen. Wenn es einen Unterschied gรคbe, wรคre ein Update erfolgt.
PostgreSQL EXISTS mit DELETE-Anweisung
A PostgreSQL Die DELETE-Anweisung kann den EXISTS-Operator verwenden. Hier ist ein Beispiel:
DELETE FROM Price WHERE EXISTS (SELECT * FROM Price2 WHERE Price.id = Price2.id);
Die Preistabelle sieht nun wie folgt aus:
Die Zeile mit der ID 5 wurde gelรถscht.
PostgreSQL EXISTS-Anweisung mit pgAdmin
Neben der SQL-Shell lassen sich dieselben EXISTS-Abfragen auch visuell รผber die pgAdmin-Oberflรคche ausfรผhren. Sehen wir uns nun an, wie diese Aktionen mit pgAdmin durchgefรผhrt werden kรถnnen:
Mit SELECT-Anweisung
Nachfolgend sind die Schritte zur Verwendung einer EXISTS-Abfrage aufgefรผhrt. PostgreSQL mit einer SELECT-Anweisung unter Verwendung von pgAdmin:
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:
SELECT * FROM Book WHERE EXISTS (SELECT * FROM Price WHERE Book.id = Price.id);
Schritt 4) Klicken Sie auf die Schaltflรคche โAusfรผhrenโ.
Es sollte Folgendes zurรผckgeben:
Mit INSERT-Anweisung
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:
INSERT INTO Price SELECT id, price FROM Price2 WHERE EXISTS (SELECT id FROM Book WHERE Book.id = Price2.id);
Schritt 4) Klicken Sie auf die Schaltflรคche โAusfรผhrenโ.
Die Preistabelle sollte nun wie folgt aussehen:
Mit UPDATE-Anweisung
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:
UPDATE Price SET price = (SELECT price FROM Price2 WHERE Price2.id = Price.id) WHERE EXISTS (SELECT id, price FROM Price2 WHERE Price2.id = Price.id);
Schritt 4) Klicken Sie auf die Schaltflรคche โAusfรผhrenโ.
Die Preistabelle sollte nun wie folgt aussehen:
Mit DELETE-Anweisung
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 EXISTS (SELECT * FROM Price2 WHERE Price.id = Price2.id);
Schritt 4) Klicken Sie auf die Schaltflรคche โAusfรผhrenโ.
Die Preistabelle sollte nun wie folgt aussehen:
Laden Sie die in diesem Tutorial verwendete Datenbank herunter





















