PostgreSQL Query verwijderen (rijen verwijderen uit selectie)
Zoekopdracht verwijderen in PostgreSQL
De Verklaring verwijderen in PostgreSQL wordt gebruikt om een of meer records uit een tabel te verwijderen. Als u geselecteerde rijen uit een tabel wilt verwijderen PostgreSQL Hiermee kunt u de DELETE-instructie combineren met de WHERE-clausule, anders worden alle records verwijderd.
Postgres Querysyntaxis verwijderen
De DELETE-instructie kan worden gedefinieerd met de onderstaande syntaxis:
[ WITH [ RECURSIVE ] with-query [, ...] ] DELETE FROM [ ONLY ] table-name [ * ] [ [ AS ] alias ] [ USING using-list ] [ WHERE condition(s) | WHERE CURRENT OF cursor-name] [ RETURNING * | output-expression [ [ AS ] output-name] [, ...] ]
parameters
- met-query: met de WITH-clausule kunnen we verwijzen naar een of meer subquery's waarnaar op naam wordt verwezen in de DELETE-query.
- tafel naam: de naam van de tabel waaruit records moeten worden verwijderd.
- alias: dit is een vervanging voor de naam van de doeltabel.
- met behulp van lijst: tabelexpressies waarmee kolommen uit andere tabellen kunnen worden gebruikt in de WHERE-clausule.
- voorwaarden): optioneel. Het zijn de voorwaarden waaraan moet worden voldaan voordat records kunnen worden verwijderd. Als deze sectie niet is opgegeven, worden alle tabelnaamrecords verwijderd.
- cursornaam: de cursor die moet worden gebruikt in de WHERE CURRENT OF-voorwaarde. De laatst opgehaalde rij door deze cursor wordt verwijderd.
- uitvoer-expressie: de expressie die moet worden verwerkt en geretourneerd door de DELETE-instructie na het verwijderen van elke rij.
- uitvoernaam: de naam die moet worden gebruikt voor de geretourneerde kolom.
Houd er rekening mee dat, aangezien de DELETE-instructie de hele rij verwijdert, u de kolomnamen niet hoeft op te geven.
PostgreSQL Query met één voorwaarde verwijderen
De DELETE-instructie kan worden gebruikt met één enkele voorwaarde. De voorwaarde wordt ingesteld met behulp van de WHERE-clausule. Beschouw de Price-tabel met de volgende gegevens:
Prijs
Laten we het record met ID 4 verwijderen:
DELETE FROM Price WHERE id = 4;
Met het bovenstaande commando worden de records verwijderd waarin de id 4 is. Laten we bevestigen of de verwijdering succesvol was:
De rij met ID 4 is verwijderd.
Query met twee voorwaarden verwijderen
De PostgreSQL DELETE statement kan twee condities aannemen. De twee condities moeten worden samengevoegd met de AND operator. We gebruiken de volgende tabel:
Prijs:
Beschouw het onderstaande voorbeeld:
DELETE FROM Price WHERE id = 3Y AND price = 300;
In de bovenstaande opdracht verwijderen we de rij waarin de id 3 is en de prijs 300 is. We kunnen nu de tabel opvragen:
SELECT * FROM Price
Dit retourneert het volgende:
Het record met een ID van 3 en een prijs van 300 is verwijderd.
PostgreSQL Query verwijderen met behulp van de bestaande voorwaarde
Met de EXISTS-voorwaarde kunt u DELETE complexer maken. Soms kan het nodig zijn om records in één tabel te verwijderen op basis van records in een andere tabel.
U zult zien dat de FROM-component u niet toestaat om records uit meer dan één tabel te vermelden bij het uitvoeren van delete, de EXISTS-component wordt erg handig. We hebben de volgende twee tabellen:
Boek:
Prijs:
Vervolgens kunnen we de volgende query uitvoeren:
DELETE FROM Book WHERE EXISTS (SELECT 1 FROM Price WHERE Price.id = Book.id AND price < 250 );
Met de bovenstaande opdracht wordt uit de Boekentabel verwijderd waar er een record in de Prijstabel bestaat met een ID die overeenkomt met die van de Boekentabel en waarbij de prijs lager is dan 250.
De boekentabel ziet er nu als volgt uit:
Het record met ID 1 is verwijderd.
Hoe rij te verwijderen in PostgreSQL met behulp van pgAdmin
Hieronder staan de stappen om een rij te verwijderen in PostgreSQL met behulp van pgAdmin:
Met één voorwaarde
Om hetzelfde te bereiken via pgAdmin, doet u het volgende:
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:
DELETE FROM Price WHERE id = 4;
Stap 4) Voer de query uit
Klik op de knop Uitvoeren
Stap 5) Controleer of de rij is verwijderd
Laten we controleren of de verwijdering succesvol is:
Met twee voorwaarden
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 id = 3 AND price = 300;
Stap 4) Klik op de knop Uitvoeren.
Stap 5) Laten we controleren of de verwijdering succesvol is:
EXISTS-voorwaarde gebruiken
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 Book WHERE EXISTS (SELECT 1 FROM Price WHERE Price.id = Book.id AND price < 250 );
Stap 4) Klik op de knop Uitvoeren.
Stap 5) Laten we controleren of de verwijdering succesvol is:
Samenvatting
- De DELETE-instructie wordt gebruikt voor het verwijderen van een of meer records uit een tabel.
- Om alleen geselecteerde rijen uit een tabel te verwijderen, kunt u de DELETE-instructie combineren met de WHERE-clausule.
- Als de DELETE-clausule wordt gebruikt zonder de WHERE-clausule, worden alle records uit de tabel verwijderd.
- Met de parameter table-name kunt u de naam toevoegen van de tabel waaruit records moeten worden verwijderd.
- We kunnen de DELETE-instructie gebruiken met één voorwaarde, gespecificeerd met behulp van de WHERE-clausule.
- De DELETE-instructie kan ook worden gebruikt met twee voorwaarden die zijn gespecificeerd in de WHERE-component. De twee voorwaarden moeten worden samengevoegd met de AND-operator.
- De BESTAAT voorwaarde kan ons helpen records uit een tabel te verwijderen op basis van de records van een andere tabel.
Download de database die in deze zelfstudie wordt gebruikt