PostgreSQL Existiert mit Beispiel zum Auswählen, Einfügen, Aktualisieren und Löschen
Was ist Existiert in PostgreSQL?
Die PostgreSQL VORHANDEN Der Operator prüft, ob eine oder mehrere Zeilen in einer Unterabfrage vorhanden sind. Dies bedeutet, dass der Operator zusammen mit einer Unterabfrage verwendet wird. Der Operator „Exists“ gilt als erfüllt, wenn mindestens eine Zeile in der Unterabfrage gefunden wird. Sie können diesen Vorgang zusammen mit den Anweisungen SELECT, UPDATE, INSERT und DELETE verwenden.
Postgres 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 Existiert mit SELECT-Anweisung
Sehen 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 Existiert 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.
Postgres existiert 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.
Postgres existiert mit der 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
Sehen wir uns nun an, wie diese Aktionen mit pgAdmin ausgeführt werden können:
So verwenden Sie die Exists-Abfrage in PostgreSQL mit SELECT-Anweisung mit pgAdmin
Im Folgenden finden Sie die Schritte zur Verwendung der Exists-Abfrage PostgreSQL mit SELECT-Anweisung mit pgAdmin:
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:
SELECT * FROM Book WHERE EXISTS (SELECT * FROM Price WHERE Book.id = Price.id);
Schritt 4) Führen Sie die Abfrage aus
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:
Zusammenfassung
- Der EXISTS-Operator prüft, ob eine oder mehrere Zeilen in einer Unterabfrage vorhanden sind.
- Sie wird mit einer Unterabfrage verwendet und gilt als erfüllt, wenn die Unterabfrage mindestens eine Zeile zurückgibt.
- Es wird zusammen mit SELECT-, UPDATE-, INSERT- und DELETE-Anweisungen verwendet.
Laden Sie die in diesem Tutorial verwendete Datenbank herunter