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:

PostgreSQL Existiert mit SELECT-Anweisung

Preis:

PostgreSQL Existiert mit SELECT-Anweisung

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:

PostgreSQL Existiert mit SELECT-Anweisung

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:

PostgreSQL Existiert mit INSERT-Anweisung

Preis:

PostgreSQL Existiert mit INSERT-Anweisung

Preis2:

PostgreSQL Existiert mit INSERT-Anweisung

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:

PostgreSQL Existiert mit INSERT-Anweisung

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);

Postgres existiert mit UPDATE-Anweisung

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:

Postgres existiert mit der DELETE-Anweisung

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

  1. Klicken Sie in der Navigationsleiste links auf Datenbanken.
  2. Klicken Sie auf Demo.

PostgreSQL Exists-Anweisung mit pgAdmin

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“.

PostgreSQL Exists-Anweisung mit pgAdmin

Es sollte Folgendes zurückgeben:

PostgreSQL Exists-Anweisung mit pgAdmin

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)

  1. Klicken Sie in der Navigationsleiste links auf Datenbanken.
  2. Klicken Sie auf Demo.

Exists-Anweisung in PostgreSQL mit pgAdmin

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“.

Exists-Anweisung in PostgreSQL mit pgAdmin

Die Preistabelle sollte nun wie folgt aussehen:

Exists-Anweisung in PostgreSQL mit pgAdmin

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)

  1. Klicken Sie in der Navigationsleiste links auf Datenbanken.
  2. Klicken Sie auf Demo.

Exists-Anweisung in PostgreSQL mit pgAdmin

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“.

PostgreSQL Exists-Anweisung mit pgAdmin

Die Preistabelle sollte nun wie folgt aussehen:

PostgreSQL Exists-Anweisung mit pgAdmin

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)

  1. Klicken Sie in der Navigationsleiste links auf Datenbanken.
  2. Klicken Sie auf Demo.

PostgreSQL Exists-Anweisung mit pgAdmin

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“.

PostgreSQL Exists-Anweisung mit pgAdmin

Die Preistabelle sollte nun wie folgt aussehen:

PostgreSQL Exists-Anweisung mit pgAdmin

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