PostgreSQL Ta bort fråga (Ta bort rader från Select)
Ta bort fråga in PostgreSQL
Ocuco-landskapet Ta bort uttalande in PostgreSQL används för att radera antingen en eller flera poster från en tabell. Om du vill ta bort välj rader från en tabell PostgreSQL låter dig kombinera DELETE-satsen med WHERE-satsen annars kommer det att radera alla poster.
Postgres Ta bort frågesyntax
DELETE-satsen kan definieras av nedanstående syntax:
[ 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] [, ...] ]
parametrar
- med-förfrågan: WITH-satsen tillåter oss att referera till en eller flera underfrågor som ska refereras med namn i DELETE-frågan.
- tabell-namn: namnet på tabellen från vilken poster ska raderas.
- alias: detta är en ersättning för namnet på måltabellen.
- use-list: tabelluttryck för att tillåta kolumner från andra tabeller att användas i WHERE-satsen.
- betingelser): frivillig. Det är villkoren som måste vara uppfyllda för att poster ska raderas. Om detta avsnitt inte tillhandahålls kommer alla tabellnamnsposter att raderas.
- markörnamn: markören som ska användas i läget WHERE CURRENT OF. Den senast hämtade raden av den här markören kommer att raderas.
- output-uttryck: uttrycket som ska behandlas och returneras av DELETE-satsen efter raderingen av varje rad.
- output-namn: namnet som ska användas för den returnerade kolumnen.
Observera att eftersom DELETE-satsen tar bort hela raden behöver du inte ange kolumnnamnen.
PostgreSQL Ta bort fråga med ett villkor
DELETE-satsen kan användas med ett enda villkor. Villkoret ställs in med hjälp av WHERE-satsen. Betrakta pristabellen med följande data:
Pris
Låt oss ta bort posten med id 4:
DELETE FROM Price WHERE id = 4;
Kommandot ovan kommer att radera posterna där id är 4. Låt oss bekräfta om raderingen lyckades:
Raden med id 4 har tagits bort.
Ta bort fråga med två villkor
Ocuco-landskapet PostgreSQL DELETE-satsen kan ha två villkor. De två villkoren ska förenas med AND-operatorn. Vi kommer att använda följande tabell:
Pris:
Tänk på exemplet nedan:
DELETE FROM Price WHERE id = 3Y AND price = 300;
I kommandot ovan tar vi bort raden där id är 3 och priset är 300. Vi kan nu fråga tabellen:
SELECT * FROM Price
Detta returnerar följande:
Posten med id 3 och pris 300 raderades.
PostgreSQL Ta bort fråga med existerande villkor
Med EXISTS-villkoret kan du göra DELETE mer komplex. Ibland kan det finnas behov av att ta bort poster i en tabell baserat på poster i en annan tabell.
Du kommer att se att FROM-satsen inte tillåter dig att lista poster från mer än en tabell när du utför radering, EXISTS-satsen blir mycket användbar. Vi har följande två tabeller:
Bok:
Pris:
Vi kan sedan köra följande fråga:
DELETE FROM Book WHERE EXISTS (SELECT 1 FROM Price WHERE Price.id = Book.id AND price < 250 );
Ovanstående kommando kommer att radera från boktabellen där det finns en post i pristabellen med ett id som matchar boktabellen och priset är mindre än 250.
Boktabellen ser nu ut som följer:
Posten med id 1 raderades.
Hur man tar bort rad i PostgreSQL med pgAdmin
Följande är stegen för att ta bort en rad i PostgreSQL använder pgAdmin:
Med ett villkor
För att åstadkomma samma sak genom pgAdmin, gör så här:
Steg 1) Logga in på ditt pgAdmin-konto
Öppna pgAdmin och logga in på ditt konto med dina referenser
Steg 2) Skapa en demodatabas
- Klicka på Databaser i navigeringsfältet till vänster.
- Klicka på Demo.
Steg 3) Skriv frågan
Skriv in frågan nedan i frågeredigeraren:
DELETE FROM Price WHERE id = 4;
Steg 4) Kör frågan
Klicka på knappen Kör
Steg 5) Kontrollera om raden är raderad
Låt oss kontrollera om raderingen lyckades:
Med två villkor
För att åstadkomma samma sak genom pgAdmin, gör så här:
Steg 1) Logga in på ditt pgAdmin-konto.
Steg 2)
- Klicka på Databaser i navigeringsfältet till vänster.
- Klicka på Demo.
Steg 3) Skriv in frågan i frågeredigeraren:
DELETE FROM Price WHERE id = 3 AND price = 300;
Steg 4) Klicka på knappen Kör.
Steg 5) Låt oss kontrollera om raderingen lyckades:
Använder EXISTS Condition
För att åstadkomma samma sak genom pgAdmin, gör så här:
Steg 1) Logga in på ditt pgAdmin-konto.
Steg 2)
- Klicka på Databaser i navigeringsfältet till vänster.
- Klicka på Demo.
Steg 3) Skriv in frågan i frågeredigeraren:
DELETE FROM Book WHERE EXISTS (SELECT 1 FROM Price WHERE Price.id = Book.id AND price < 250 );
Steg 4) Klicka på knappen Kör.
Steg 5) Låt oss kontrollera om raderingen lyckades:
Sammanfattning
- DELETE-satsen används för att ta bort en eller flera poster från en tabell.
- För att bara ta bort markerade rader från en tabell kan du kombinera DELETE-satsen med WHERE-satsen.
- Om DELETE-satsen används utan WHERE-satsen raderar den alla poster från tabellen.
- parametern table-name låter dig lägga till namnet på tabellen från vilken poster ska raderas.
- Vi kan använda DELETE-satsen med ett villkor, specificerat med hjälp av WHERE-satsen.
- DELETE-satsen kan också användas med två villkor som anges i WHERE-satsen. De två villkoren ska förenas med AND-operatorn.
- Ocuco-landskapet EXISTS condition kan hjälpa oss att ta bort poster från en tabell baserat på posterna i en annan tabell.
Ladda ner den databas som används i denna handledning