PostgreSQL existiert mit Beispielen zum Auswählen, Einfügen, Aktualisieren und Löschen

Was ist in PostgreSQL vorhanden?

Der PostgreSQL EXISTIERT Der Operator testet, ob eine oder mehrere Zeilen in einer Unterabfrage vorhanden sind. Das bedeutet, dass der Operator zusammen mit einer Unterabfrage verwendet wird. Der Exists-Operator gilt als erfüllt, wenn mindestens eine Zeile in der Unterabfrage gefunden wird. Sie können diesen Vorgang zusammen mit SELECT-, UPDATE-, INSERT- und DELETE-Anweisungen verwenden.

Postgres Exists-Abfragesyntax

Hier ist die Syntax für die PostgreSQL EXISTS-Anweisung:

WHERE EXISTS (subquery);

Die obige Syntax zeigt, dass der EXISTS-Operator ein Argument aufnimmt, bei dem es sich um eine Unterabfrage handelt. 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 Folgendeswing Tabellen:

Buch:

PostgreSQL existiert mit SELECT-Anweisung

Preis:

PostgreSQL existiert mit SELECT-Anweisung

Führen Sie Folgendes auswing Aussage:

SELECT *
FROM Book
WHERE EXISTS (SELECT *
              FROM Price
              WHERE Book.id = Price.id);

Dies gibt Folgendes zurückwing:

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 verwenden INSERT-Anweisung. Wir haben Folgendeswing 3 Tische:

Buch:

PostgreSQL existiert mit INSERT-Anweisung

Preis:

PostgreSQL existiert mit INSERT-Anweisung

Preis2:

PostgreSQL existiert mit INSERT-Anweisung

Wir können dann Folgendes ausführenwing Aussage:

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 Folgendes auswing Abfrage:

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

Eine PostgreSQL-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 der 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ückgebenwing:

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 testet, 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