PostgreSQL ELIMINA le righe dalla selezione
โก Riepilogo intelligente
PostgreSQL L'istruzione DELETE rimuove una o piรน righe da una tabella, e se abbinata a una clausola WHERE seleziona solo i record che soddisfano una determinata condizione, mentre omettendo WHERE vengono eliminate tutte le righe della tabella.

Elimina query in PostgreSQL
Migliori istruzione DELETE in PostgreSQL viene utilizzato per eliminare uno o piรน record da una tabella. Per eliminare solo le righe selezionate da una tabella, PostgreSQL Consente di combinare l'istruzione DELETE con la clausola WHERE; altrimenti, elimina tutti i record nella tabella.
PostgreSQL Sintassi della query di eliminazione
L'istruzione DELETE puรฒ essere definita utilizzando la sintassi seguente:
[ 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] [, ...] ]
Scheda Sintetica
Sono disponibili i seguenti parametri:
- con-queryLa clausola WITH consente di fare riferimento a una o piรน sottoquery per nome all'interno della query DELETE.
- nome-tabella: il nome della tabella da cui si vogliono eliminare i record.
- alias: un sostituto per il nome della tabella di destinazione.
- lista di utilizzo: espressioni di tabella che consentono di utilizzare colonne di altre tabelle nella clausola WHERE.
- condizione(i): facoltativo. Queste sono le condizioni che devono essere soddisfatte affinchรฉ i record vengano eliminati. Se questa sezione non viene fornita, tutti i record del nome della tabella verranno eliminati.
- nome-cursore: il cursore da utilizzare nella condizione WHERE CURRENT OF. L'ultima riga recuperata da questo cursore verrร eliminata.
- espressione-output: l'espressione da elaborare e restituire dall'istruzione DELETE dopo l'eliminazione di ogni riga.
- nome-uscita: il nome da utilizzare per la colonna restituita.
Si noti che, poichรฉ l'istruzione DELETE elimina l'intera riga, non รจ necessario specificare i nomi delle colonne.
PostgreSQL Elimina query con una condizione
L'istruzione DELETE puรฒ essere utilizzata con una singola condizione, che viene definita tramite la clausola WHERE. Si consideri la tabella Prezzi con i seguenti dati:
Prezzo:
Eliminiamo il record con un ID 4:
DELETE FROM Price WHERE id = 4;
Il comando sopra riportato elimina i record con ID pari a 4. Verifichiamo se l'eliminazione รจ andata a buon fine:
La riga con ID 4 รจ stata eliminata.
Elimina query con due condizioni
Migliori PostgreSQL L'istruzione DELETE puรฒ anche accettare due condizioni. Le due condizioni devono essere unite utilizzando l'operatore AND. Useremo la seguente tabella:
Prezzo:
Considera l'esempio riportato di seguito:
DELETE FROM Price WHERE id = 3 AND price = 300;
Nel comando precedente, eliminiamo la riga in cui l'ID รจ 3 e il prezzo รจ 300. Ora possiamo interrogare la tabella:
SELECT * FROM Price;
Questo restituisce quanto segue:
Il record con ID 3 e prezzo 300 รจ stato eliminato.
PostgreSQL Query di eliminazione tramite condizione EXISTS
Grazie alla ESISTE In determinate condizioni, รจ possibile rendere l'operazione DELETE piรน complessa. Talvolta potrebbe essere necessario eliminare record in una tabella in base ai record presenti in un'altra tabella.
Poichรฉ la clausola FROM non consente di elencare record provenienti da piรน di una tabella durante un'operazione di eliminazione, la clausola EXISTS risulta molto utile. Abbiamo le seguenti due tabelle:
Libro:
Prezzo:
Possiamo quindi eseguire la seguente query:
DELETE FROM Book WHERE EXISTS (SELECT 1 FROM Price WHERE Price.id = Book.id AND price < 250 );
Il comando elimina dalla tabella Book le righe che hanno un ID corrispondente nella tabella Price con un prezzo inferiore a 250.
La tabella Libro ora รจ la seguente:
Il record con ID 1 รจ stato eliminato.
Come eliminare una riga in PostgreSQL utilizzando pgAdmin
Le stesse query di eliminazione possono essere eseguite anche visivamente tramite l'interfaccia pgAdmin, seguendo i passaggi indicati di seguito:
Con una condizione
Passo 1) Accedi al tuo account pgAdmin. Apri pgAdmin ed effettua l'accesso utilizzando le tue credenziali.
Passo 2) Crea un database di prova.
- Dalla barra di navigazione a sinistra, fare clic su Database.
- Fare clic su Demo.
Passo 3) Digita la query seguente nell'editor di query:
DELETE FROM Price WHERE id = 4;
Passo 4) Fare clic sul pulsante Esegui.
Passo 5) Verifichiamo se la riga รจ stata eliminata:
Con due condizioni
Passo 1) Accedi al tuo account pgAdmin.
Passo 2)
- Dalla barra di navigazione a sinistra, fare clic su Database.
- Fare clic su Demo.
Passo 3) Digita la query nell'editor di query:
DELETE FROM Price WHERE id = 3 AND price = 300;
Passo 4) Fare clic sul pulsante Esegui.
Passo 5) Controlliamo se la cancellazione รจ avvenuta con successo:
Utilizzo della condizione EXISTS
Passo 1) Accedi al tuo account pgAdmin.
Passo 2)
- Dalla barra di navigazione a sinistra, fare clic su Database.
- Fare clic su Demo.
Passo 3) Digita la query nell'editor di query:
DELETE FROM Book WHERE EXISTS (SELECT 1 FROM Price WHERE Price.id = Book.id AND price < 250 );
Passo 4) Fare clic sul pulsante Esegui.
Passo 5) Controlliamo se la cancellazione รจ avvenuta con successo:
Scarica il database utilizzato in questo tutorial
















