PostgreSQL EXISTIERT mit Beispielen

Inhaltsverzeichnis:

Anonim

Was gibt es bei PostgreSQL?

Der EXISTS-Operator testet, ob eine oder mehrere Zeilen in einer Unterabfrage vorhanden sind. Dies bedeutet, dass der Operator zusammen mit einer Unterabfrage verwendet wird. Der Exists-Operator soll erfüllt worden sein, wenn mindestens eine Zeile in der Unterabfrage gefunden wurde. Sie können diesen Vorgang zusammen mit den Anweisungen SELECT, UPDATE, INSERT und DELETE verwenden.

In diesem PostgreSQL-Tutorial lernen Sie Folgendes:

  • Syntax
  • Mit SELECT-Anweisung
  • Mit INSERT-Anweisung
  • Mit UPDATE-Anweisung
  • Mit DELETE-Anweisung
  • Mit pgAdmin

Syntax

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, die mit einem SELECT * anstelle einer Liste von Spaltennamen oder Ausdrücken beginnen sollte.

Mit SELECT-Anweisung

Lassen Sie uns sehen, wie eine SELECT-Anweisung mit dem EXISTS-Operator verwendet wird. Wir haben die folgenden Tabellen:

Buch:

Preis:

Führen Sie die folgende Anweisung aus:

SELECT *FROM BookWHERE EXISTS (SELECT *FROM PriceWHERE 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.

Mit INSERT-Anweisung

Wir können den EXISTS-Operator in einer INSERT-Anweisung verwenden. Wir haben die folgenden 3 Tabellen:

Buch:

Preis:

Preis2:

Wir können dann die folgende Anweisung ausführen:

INSERT INTO PriceSELECT id, priceFROM Price2WHERE EXISTS (SELECT idFROM BookWHERE Book.id = Price2.id);

Die Preistabelle lautet nun wie folgt:

Die Zeile mit der ID 5 in der Tabelle mit dem Namen Price2 wurde abgeglichen. Dieser Datensatz wurde dann in die Preistabelle eingefügt.

Mit UPDATE-Anweisung

Wir können den EXISTS-Operator in einer UPDATE-Anweisung verwenden.

Führen Sie die folgende Abfrage aus:

UPDATE PriceSET price = (SELECT priceFROM Price2WHERE Price2.id = Price.id)WHERE EXISTS (SELECT id, priceFROM Price2WHERE Price2.id = Price.id);

Wir aktualisieren die Preisspalte der Preistabelle. Unser Ziel ist es, dass die Preise für Artikel mit einer ID gleich sind. Es wurde nur eine Zeile abgeglichen, dh 5.

Da jedoch die Preise gleich sind, dh 205, wurde keine Aktualisierung vorgenommen. Wenn es einen Unterschied gäbe, wäre ein Update vorgenommen worden.

Mit DELETE-Anweisung

Eine PostgreSQL DELETE-Anweisung kann den EXISTS-Operator verwenden. Hier ist ein Beispiel:

DELETE FROM PriceWHERE EXISTS (SELECT *FROM Price2WHERE Price.id = Price2.id);

Die Preistabelle lautet nun wie folgt:

Die Zeile mit der ID 5 wurde gelöscht.

Mit pgAdmin

Nun wollen wir sehen, wie diese Aktionen mit pgAdmin ausgeführt werden können.

Mit SELECT-Anweisung

Gehen Sie folgendermaßen vor, um dasselbe mit pgAdmin zu erreichen:

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.

Schritt 3) Geben Sie die Abfrage in den Abfrageeditor ein:

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

Schritt 4) Klicken Sie auf die Schaltfläche Ausführen.

Es sollte Folgendes zurückgeben:

Mit INSERT-Anweisung

Gehen Sie folgendermaßen vor, um dasselbe mit pgAdmin zu erreichen:

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.

Schritt 3) Geben Sie die Abfrage in den Abfrageeditor ein:

INSERT INTO PriceSELECT id, priceFROM Price2WHERE EXISTS (SELECT idFROM BookWHERE Book.id = Price2.id);

Schritt 4) Klicken Sie auf die Schaltfläche Ausführen.

Die Preistabelle sollte nun wie folgt aussehen:

Mit UPDATE-Anweisung

Gehen Sie folgendermaßen vor, um dasselbe mit pgAdmin zu erreichen:

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.

Schritt 3) Geben Sie die Abfrage in den Abfrageeditor ein:

UPDATE PriceSET price = (SELECT priceFROM Price2WHERE Price2.id = Price.id)WHERE EXISTS (SELECT id, priceFROM Price2WHERE Price2.id = Price.id);

Schritt 4) Klicken Sie auf die Schaltfläche Ausführen.

Die Preistabelle sollte nun wie folgt aussehen:

Mit DELETE-Anweisung

Gehen Sie folgendermaßen vor, um dasselbe mit pgAdmin zu erreichen:

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.

Schritt 3) Geben Sie die Abfrage in den Abfrageeditor ein:

DELETE FROM PriceWHERE EXISTS (SELECT *FROM Price2WHERE 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 testet, ob eine oder mehrere Zeilen in einer Unterabfrage vorhanden sind.
  • Es wird mit einer Unterabfrage verwendet und gilt als erfüllt, wenn die Unterabfrage mindestens eine Zeile zurückgibt.
  • Es wird zusammen mit den Anweisungen SELECT, UPDATE, INSERT und DELETE verwendet.

Laden Sie die in diesem Tutorial verwendete Datenbank herunter