PostgreSQL BESTAAT met SELECT Operator (Voorbeeld)
โก Slimme samenvatting
PostgreSQL EXISTS is een Booleaanse operator die test of een gecorreleerde subquery een rij retourneert, waardoor SELECT-, INSERT-, UPDATE- en DELETE-instructies gegevens efficiรซnt kunnen filteren op basis van de aanwezigheid of afwezigheid van overeenkomende records.

Wat bestaat er in PostgreSQL?
De PostgreSQL BESTAAT De EXISTS-operator test of een of meer rijen in een subquery voorkomen. Dit betekent dat de operator samen met een subquery wordt gebruikt. Er wordt gezegd dat aan de EXISTS-operator is voldaan wanneer er ten minste รฉรฉn rij in de subquery wordt gevonden. U kunt deze bewerking gebruiken in combinatie met SELECT-, UPDATE-, INSERT- en DELETE-instructies.
PostgreSQL EXISTS-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 EXISTS met SELECT-instructie
Laten we eens kijken hoe we een SELECT-instructie met de EXISTS-operator kunnen gebruiken. We hebben de volgende tabellen:
Boek:
Prijs:
Voer de volgende instructie uit:
SELECT * FROM Book WHERE EXISTS (SELECT * FROM Price WHERE Book.id = Price.id);
Dit geeft het volgende terug:
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 INVOEGINSTRUCTIE
We kunnen de EXISTS-operator gebruiken in een INSERT-verklaring. We hebben de volgende 3 tabellen:
Boek:
Prijs:
Prijs2:
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:
De rij met ID 5 in de tabel met de naam Price2 is gematcht. Dit record werd vervolgens ingevoegd in de prijstabel.
PostgreSQL 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);
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.
PostgreSQL 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:
De rij met ID 5 is verwijderd.
PostgreSQL EXISTS-instructie met pgAdmin
Naast de SQL-shell kunnen dezelfde EXISTS-query's ook visueel worden uitgevoerd via de pgAdmin-interface. Laten we nu eens kijken hoe deze acties met pgAdmin kunnen worden uitgevoerd:
Met een SELECT-instructie
Hieronder volgen de stappen voor het gebruik van een EXISTS-query in PostgreSQL met een SELECT-instructie via pgAdmin:
Stap 1) Log in op uw pgAdmin-account. Open pgAdmin en log in met uw inloggegevens.
Stap 2) Maak een demo-database aan.
- Klik in de navigatiebalk aan de linkerkant op Databases.
- Klik op Demo.
Stap 3) Typ de onderstaande query in de query-editor:
SELECT * FROM Book WHERE EXISTS (SELECT * FROM Price WHERE Book.id = Price.id);
Stap 4) Klik op de knop Uitvoeren.
Het volgende zou moeten worden geretourneerd:
Met INSERT-verklaring
Om hetzelfde te bereiken via pgAdmin, doet u het volgende:
Stap 1) Log in op uw pgAdmin-account.
Stap 2)
- Klik in de navigatiebalk aan de linkerkant op Databases.
- Klik op Demo.
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.
De prijstabel zou er nu als volgt uit moeten zien:
Met UPDATE-verklaring
Om hetzelfde te bereiken via pgAdmin, doet u het volgende:
Stap 1) Log in op uw pgAdmin-account.
Stap 2)
- Klik in de navigatiebalk aan de linkerkant op Databases.
- Klik op Demo.
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.
De prijstabel zou er nu als volgt uit moeten zien:
Met DELETE-verklaring
Om hetzelfde te bereiken via pgAdmin, doet u het volgende:
Stap 1) Log in op uw pgAdmin-account.
Stap 2)
- Klik in de navigatiebalk aan de linkerkant op Databases.
- Klik op Demo.
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.
De prijstabel zou er nu als volgt uit moeten zien:
Download de database die in deze zelfstudie wordt gebruikt





















