PostgreSQL Bestaat met voorbeeld Selecteren, Invoegen, Bijwerken en Verwijderen

Wat is Bestaat in PostgreSQL?

Ocuco's Medewerkers PostgreSQL BESTAAT operator test of een rij(en) in een subquery bestaat. Dit betekent dat de operator samen met een subquery wordt gebruikt. De operator Exists wordt geacht te zijn voldaan wanneer er ten minste één rij in de subquery is gevonden. U kunt deze bewerking gebruiken samen met SELECT-, UPDATE-, INSERT- en DELETE-instructies.

Postgres bestaat querysyntaxis

Hier is de syntaxis voor de PostgreSQL EXISTS-verklaring:

WHERE EXISTS (subquery);

De bovenstaande syntaxis laat zien dat de EXISTS-operator een argument accepteert, wat een subquery is. De subquery is simpelweg een SELECT-instructie dat moet beginnen met een SELECT * in plaats van een lijst met kolomnamen of expressies.

PostgreSQL Bestaat met SELECT-instructie

Laten we eens kijken hoe we een SELECT-statement met de EXISTS-operator kunnen gebruiken. We hebben de volgende tabellen:

Boek:

PostgreSQL Bestaat met SELECT-instructie

Prijs:

PostgreSQL Bestaat met SELECT-instructie

Voer de volgende instructie uit:

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

Dit geeft het volgende terug:

PostgreSQL Bestaat met SELECT-instructie

De bovenstaande opdracht zou alle records in de Boek-tabel moeten retourneren waarvan de id overeenkomt met de id van alle records in de subquery. Er kwam slechts één ID overeen. Er werd dus slechts één record geretourneerd.

PostgreSQL Bestaat met INSERT-instructie

We kunnen de EXISTS-operator gebruiken in een INSERT-verklaring. We hebben de volgende 3 tabellen:

Boek:

PostgreSQL Bestaat met INSERT-instructie

Prijs:

PostgreSQL Bestaat met INSERT-instructie

Prijs2:

PostgreSQL Bestaat met INSERT-instructie

We kunnen dan de volgende verklaring uitvoeren:

INSERT INTO Price
SELECT id, price
FROM Price2
WHERE EXISTS (SELECT id
              FROM Book
              WHERE Book.id = Price2.id);

De prijstabel ziet er nu als volgt uit:

PostgreSQL Bestaat met INSERT-instructie

De rij met ID 5 in de tabel met de naam Price2 is gematcht. Dit record werd vervolgens ingevoegd in de prijstabel.

Postgres bestaat met UPDATE-verklaring

We kunnen de EXISTS-operator gebruiken in een UPDATE-instructie.

Voer de volgende query uit:

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 bestaat met UPDATE-verklaring

We werken de prijskolom van de prijstabel bij. Ons doel is om de prijzen van artikelen met een gedeeld ID hetzelfde te laten zijn. Er kwam slechts één rij overeen, dat wil zeggen 5.

Omdat de prijzen echter gelijk zijn, dat wil zeggen 205, is er geen update uitgevoerd. Als er een verschil was geweest, zou er een update zijn uitgevoerd.

Postgres bestaat met DELETE-instructie

A PostgreSQL De DELETE-instructie kan de EXISTS-operator gebruiken. Hier is een voorbeeld:

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

De prijstabel ziet er nu als volgt uit:

Postgres bestaat met DELETE-instructie

De rij met ID 5 is verwijderd.

PostgreSQL Bestaat Verklaring met behulp van pgAdmin

Laten we nu eens kijken hoe deze acties kunnen worden uitgevoerd met pgAdmin:

Hoe te gebruiken Bestaat Query in PostgreSQL met SELECT-instructie met behulp van pgAdmin

Hieronder vindt u de stappen om de Bestaat-query te gebruiken PostgreSQL met SELECT-instructie met behulp van pgAdmin:

Stap 1) Log in op uw pgAdmin-account

Open pgAdmin en log in op uw account met uw inloggegevens

Stap 2) Maak een demodatabase

  1. Klik in de navigatiebalk aan de linkerkant op Databases.
  2. Klik op Demo.

PostgreSQL Bestaat Verklaring met behulp van pgAdmin

Stap 3) Typ de zoekopdracht

Typ de onderstaande query in de query-editor:

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

Stap 4) Voer de query uit

Klik op de knop Uitvoeren

PostgreSQL Bestaat Verklaring met behulp van pgAdmin

Het volgende zou moeten worden geretourneerd:

PostgreSQL Bestaat Verklaring met behulp van pgAdmin

Met INSERT-verklaring

Om hetzelfde te bereiken via pgAdmin, doet u het volgende:

Stap 1) Log in op uw pgAdmin-account.

Stap 2)

  1. Klik in de navigatiebalk aan de linkerkant op Databases.
  2. Klik op Demo.

Bestaat Verklaring in PostgreSQL met behulp van pgAdmin

Stap 3) Typ de query in de query-editor:

INSERT INTO Price
SELECT id, price
FROM Price2
WHERE EXISTS (SELECT id
              FROM Book
              WHERE Book.id = Price2.id);

Stap 4) Klik op de knop Uitvoeren.

Bestaat Verklaring in PostgreSQL met behulp van pgAdmin

De prijstabel zou er nu als volgt uit moeten zien:

Bestaat Verklaring in PostgreSQL met behulp van pgAdmin

Met UPDATE-verklaring

Om hetzelfde te bereiken via pgAdmin, doet u het volgende:

Stap 1) Log in op uw pgAdmin-account.

Stap 2)

  1. Klik in de navigatiebalk aan de linkerkant op Databases.
  2. Klik op Demo.

Bestaat Verklaring in PostgreSQL met behulp van pgAdmin

Stap 3) Typ de query in de query-editor:

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

Stap 4) Klik op de knop Uitvoeren.

PostgreSQL Bestaat Verklaring met behulp van pgAdmin

De prijstabel zou er nu als volgt uit moeten zien:

PostgreSQL Bestaat Verklaring met behulp van pgAdmin

Met DELETE-verklaring

Om hetzelfde te bereiken via pgAdmin, doet u het volgende:

Stap 1) Log in op uw pgAdmin-account.

Stap 2)

  1. Klik in de navigatiebalk aan de linkerkant op Databases.
  2. Klik op Demo.

PostgreSQL Bestaat Verklaring met behulp van pgAdmin

Stap 3) Typ de query in de query-editor:

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

Stap 4) Klik op de knop Uitvoeren.

PostgreSQL Bestaat Verklaring met behulp van pgAdmin

De prijstabel zou er nu als volgt uit moeten zien:

PostgreSQL Bestaat Verklaring met behulp van pgAdmin

Samenvatting

  • De operator EXISTS test of een rij(en) in een subquery bestaat.
  • Het wordt gebruikt met een subquery en er wordt gezegd dat er aan is voldaan wanneer de subquery ten minste één rij retourneert.
  • Het wordt gebruikt in combinatie met SELECT-, UPDATE-, INSERT- en DELETE-instructies.

Download de database die in deze zelfstudie wordt gebruikt