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:
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 INSERT-instructie
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.
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);
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:
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
- Klik in de navigatiebalk aan de linkerkant op Databases.
- Klik op Demo.
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
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:
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