Guida Amichevole per Principianti - Query DELETE in SQL

Ciao there, appassionati di SQL in erba! Oggi esploreremo il mondo delle query DELETE in SQL. Non preoccuparti se sei nuovo alla programmazione - ti guiderò passo-passo, proprio come ho fatto per centinaia di studenti durante gli anni della mia insegnanza. Allora, prenditi una tazza di caffè (o tè, se è più il tuo thing), e iniziamo!

SQL - Delete Query

La Dichiarazione DELETE in SQL

Immagina di organizzare il tuo album di foto digitali. A volte, vuoi rimuovere alcune foto, vero? Ecco esattamente cosa fa la dichiarazione DELETE in SQL - ci aiuta a rimuovere i dati indesiderati dalle nostre tabelle di database.

Ecco la sintassi di base di una dichiarazione DELETE:

DELETE FROM nome_tabella
WHERE condizione;

Analizziamo questo:

  • DELETE FROM: Questo dice a SQL che vogliamo cancellare qualcosa da una tabella specifica.
  • nome_tabella: Sostituisci questo con il nome della tua tabella.
  • WHERE: Questo è opzionale ma importante. Specifica quali righe cancellare.
  • condizione: Qui imposti i criteri per la cancellazione.

Esempio 1: Cancellazione di una Singola Riga

Immaginiamo di avere una tabella chiamata students e vogliamo rimuovere uno studente di nome John Doe:

DELETE FROM students
WHERE name = 'John Doe';

Questa query cancellerà la riga dove il nome è esattamente 'John Doe'. Attenzione però! Se ci sono più John Doe, tutti将被 cancellati.

Esempio 2: Cancellazione Basata su una Condizione Numerica

Ora, rimuoviamo tutti gli studenti che hanno più di 25 anni:

DELETE FROM students
WHERE age > 25;

Questa cancellerà tutte le righe dove l'età è maggiore di 25. È come dire al database, "Ehi, rimuovi chi è abbastanza grande per noleggiare una macchina senza costi extra!"

Cancellazione di Multipli Record

A volte, potresti voler cancellare più righe che soddisfano determinati criteri. Esaminiamo un paio di esempi.

Esempio 3: Cancellazione di Righe con Multipli Criteri

Supponiamo di voler cancellare tutti gli studenti che hanno più di 30 anni e un GPA inferiore a 2.5:

DELETE FROM students
WHERE age > 30 AND gpa < 2.5;

Questa query combina due condizioni utilizzando AND. È come dire, "Rimuovi gli studenti che hanno più di 30 anni E che stanno lottando accademicamente."

Esempio 4: Cancellazione di Righe Basata su una Lista di Valori

E se vogliamo cancellare studenti da una lista specifica di città? Possiamo usare l'operatore IN:

DELETE FROM students
WHERE city IN ('New York', 'Los Angeles', 'Chicago');

Questa query cancellerà tutti gli studenti che provengono da New York, Los Angeles o Chicago. È come avere una lista VIP, ma per la cancellazione!

Cancellazione di Tutti i Record da una Tabella

A volte, potresti voler svuotare entirely una tabella. È come decidere di svuotare l'intero armadio per ricominciare da zero. Ecco come farlo:

DELETE FROM nome_tabella;

Ad esempio, per cancellare tutti i record dalla nostra tabella students:

DELETE FROM students;

⚠️ Attenzione: Sii estremamente cauto con questo comando! È come usare un lanciafiamme per pulire la tua stanza - efficace, ma potenzialmente disastroso se usato in modo errato.

Cancellazione di Record in Multipli Tabelle

Ora, diamo un'accelerata. A volte, devi cancellare record da più tabelle correlate in una volta. Questo è dove le cose diventano un po' più complesse, ma non preoccuparti - ti guiderò.

Esempio 5: Cancellazione da Multipli Tabelle Utilizzando JOIN

Supponiamo di avere due tabelle: students e enrollments. Vogliamo cancellare tutte le iscrizioni e i record degli studenti che non hanno pagato le tasse:

DELETE students, enrollments
FROM students
JOIN enrollments ON students.id = enrollments.student_id
WHERE students.fees_paid = 0;

Questa query fa diverse cose:

  1. Unisce le tabelle students e enrollments.
  2. Cerca studenti che non hanno pagato le tasse.
  3. CanceLLa i record corrispondenti da entrambe le tabelle.

È come pulire la tua lista di contatti e rimuovere questi contatti da tutte le chat di gruppo!

Esempio 6: Utilizzo di Subquery per la Cancellazione

A volte, potresti dover cancellare basandoti su dati in un'altra tabella senza effettivamente unirle. Ecco un esempio:

DELETE FROM enrollments
WHERE student_id IN (
SELECT id
FROM students
WHERE graduation_year < 2020
);

Questa query cancella tutte le iscrizioni per studenti che si sono laureati prima del 2020. È come dire, "Rimuovi tutte le invitazioni agli eventi per le persone che sono già trasferite."

Riepilogo dei Metodi DELETE

Ecco una tabella di riepilogo dei metodi DELETE che abbiamo coperto:

Metodo Descrizione Esempio
DELETE di Base Cancella righe basate su una condizione DELETE FROM students WHERE name = 'John Doe';
DELETE con multipli criteri Cancella righe che soddisfano multipli criteri DELETE FROM students WHERE age > 30 AND gpa < 2.5;
DELETE con clausola IN Cancella righe basate su una lista di valori DELETE FROM students WHERE city IN ('New York', 'Los Angeles', 'Chicago');
DELETE di tutti i record Rimuove tutte le righe da una tabella DELETE FROM students;
DELETE con JOIN Cancella record correlati da più tabelle DELETE students, enrollments FROM students JOIN enrollments ON students.id = enrollments.student_id WHERE students.fees_paid = 0;
DELETE con subquery Cancella basandosi sui risultati da un'altra query DELETE FROM enrollments WHERE student_id IN (SELECT id FROM students WHERE graduation_year < 2020);

Ecco fatto! Hai appena imparato i dettagli delle query DELETE in SQL. Ricorda, con grande potere viene grande responsabilità. Controlla sempre i tuoi WHERE clauses prima di eseguire una query DELETE, e se possibile, iniziare con un SELECT per preview cosa stai per cancellare.

Pratica queste query, gioca con loro, e presto sarai in grado di cancellare dati come un professionista! Ricorda - nel mondo reale, è spesso meglio archiviare i dati piuttosto che cancellarli permanentemente. Buon querying, e possa i tuoi database sempre essere puliti e organizzati!

Credits: Image by storyset