Wat is PostgreSQL bestaat?
de exist operator test of er een rij (en) bestaat in een subquery. Dit betekent dat de operator samen met een subquery wordt gebruikt. Er wordt gezegd dat aan de exists-operator is voldaan wanneer ten minste één rij in de subquery is gevonden. U kunt deze bewerking gebruiken samen met statements selecteren, bijwerken, invoegen en verwijderen.
in deze PostgreSQL Tutorial leert u het volgende:
- syntaxis
- met SELECT Statement
- met INSERT Statement
- met UPDATE Statement
- met DELETE Statement
- met pgAdmin
syntaxis
hier is de syntaxis voor de PostgreSQL EXISTS statement:
WHERE EXISTS (subquery);
de bovenstaande syntaxis laat zien dat de EXISTS operator een argument opneemt, wat een subquery is. De subquery is gewoon een SELECT statement dat moet beginnen met een SELECT * in plaats van een lijst met kolomnamen of expressies.
laat met SELECT Statement
zien hoe een SELECT statement gebruikt wordt met de EXISTS operator. We hebben de volgende tabellen:
Boek:
Prijs:
Voer de volgende instructie:
SELECT *FROM BookWHERE EXISTS (SELECT * FROM Price WHERE Book.id = Price.id);
Dit geeft de volgende:
De bovenstaande commando zal alle records in de tabel met id overeenkomt met de id van dossiers door de subquery. Er is maar één identificatie gevonden. Er werd dus slechts één record geretourneerd.
met INSERT Statement
kunnen we de exist operator gebruiken in een INSERT statement. We hebben de volgende 3 tabellen:
Boek:
Prijs:
2:
We kunnen dan de volgende instructie uitvoeren:
INSERT INTO PriceSELECT id, priceFROM Price2WHERE EXISTS (SELECT id FROM Book WHERE Book.id = Price2.id);
De Prijs tabel is nu als volgt:
De rij met id 5 in de tabel met 2 geëvenaard. Dit record werd vervolgens in de prijstabel opgenomen.
met UPDATE Statement
kunnen we de exist operator gebruiken in een UPDATE statement.
Voer de volgende zoekopdracht uit:
UPDATE PriceSET price = (SELECT price FROM Price2 WHERE Price2.id = Price.id)WHERE EXISTS (SELECT id, priceFROM Price2WHERE Price2.id = Price.id);
We werken de prijskolom van de prijstabel bij. Ons doel is om de prijzen van items die een id delen hetzelfde te laten zijn. Slechts één rij werd geëvenaard, dat is, 5.
aangezien de prijzen echter gelijk zijn, dat wil zeggen 205, werd geen actualisering uitgevoerd. Als er een verschil was, zou er een update zijn gemaakt.
met DELETE Statement
een PostgreSQL DELETE statement kan gebruik maken van de exist operator. Hier is een voorbeeld:
DELETE FROM PriceWHERE EXISTS (SELECT * FROM Price2 WHERE Price.id = Price2.id);
de prijstabel is nu als volgt:
de rij met een id van 5 is verwijderd.
met pgAdmin
laten we nu eens kijken hoe deze acties kunnen worden uitgevoerd met pgAdmin.
met SELECT Statement
om hetzelfde te bereiken via pgAdmin, doe dit:
Stap 1) Log in op uw pgAdmin account.
Step 2)
- vanuit de navigatiebalk aan de linker muisknop Databases.
- Klik Op Demo.
Stap 3) Typ de query in de query-editor:
SELECT *FROM BookWHERE EXISTS (SELECT * FROM Price WHERE Book.id = Price.id);
Stap 4) Klik op de Uitvoeren knop.
het moet terugkeren de volgende:
met INSERT Statement
om hetzelfde te bereiken via pgAdmin, doe dit:
Stap 1) Log in op uw pgAdmin account.
salaristrap 2)
- vanuit de navigatiebalk aan de linker muisknop Databases.
- Klik Op Demo.
Stap 3) Typ de query in de query-editor:
INSERT INTO PriceSELECT id, priceFROM Price2WHERE EXISTS (SELECT id FROM Book WHERE Book.id = Price2.id);
Stap 4) Klik op de knop Uitvoeren.
de prijstabel moet nu als volgt zijn:
met UPDATE Statement
om hetzelfde te bereiken via pgAdmin, doe dit:
Stap 1) Log in op uw pgAdmin account.
Step 2)
- vanuit de navigatiebalk aan de linker muisknop Databases.
- Klik Op Demo.
Stap 3) Typ de query in de query-editor:
UPDATE PriceSET price = (SELECT price FROM Price2 WHERE Price2.id = Price.id)WHERE EXISTS (SELECT id, priceFROM Price2WHERE Price2.id = Price.id);
Stap 4) Klik op de Uitvoeren knop.
de prijstabel moet nu als volgt zijn:
met DELETE Statement
om hetzelfde te bereiken via pgAdmin, doe dit:
Stap 1) Log in op uw pgAdmin account.
Step 2)
- vanuit de navigatiebalk aan de linker muisknop Databases.
- Klik Op Demo.
Stap 3) Typ de query in de query-editor:
DELETE FROM PriceWHERE EXISTS (SELECT * FROM Price2 WHERE Price.id = Price2.id);
Stap 4) Klik op de Uitvoeren knop.
de prijstabel moet nu als volgt zijn:
samenvatting
- de exist operator test of er een rij (en) bestaat in een subquery.
- het wordt gebruikt met een subquery en er wordt gezegd dat aan de subquery is voldaan wanneer de subquery ten minste één rij retourneert.
- het wordt gebruikt samen met Select, UPDATE, INSERT en DELETE statements.
Download de Database die in deze Tutorial wordt gebruikt