Cos'è la query DELETE?
Il comando MySQL DELETE viene utilizzato per eliminare le righe non più necessarie dalle tabelle del database. Elimina l'intera riga dalla tabella e restituisce il conteggio delle righe eliminate. Il comando Elimina è utile per eliminare dati temporanei o obsoleti dal database.
La query Elimina in MySQL può eliminare più di una riga da una tabella in una singola query. Ciò si rivela vantaggioso quando si rimuovono un numero elevato di righe da una tabella di database.
Una volta che una riga Elimina nella riga MySQL è stata eliminata, non può essere ripristinata. Si consiglia quindi vivamente di eseguire backup del database prima di eliminare qualsiasi dato dal database. Ciò può consentire di ripristinare il database e visualizzare i dati in un secondo momento se necessario.
Come eliminare una riga in MySQL
Per eliminare una riga in MySQL, viene utilizzata l'istruzione DELETE FROM:
DELETE FROM `table_name` [WHERE condition];
QUI
- DELETE FROM `table_name` dice al server MySQL di rimuovere le righe dalla tabella ...
- [WHERE condition] è facoltativa e viene utilizzata per inserire un filtro che limita il numero di righe interessate dalla query di riga MySQL DELETE.
Se la clausola WHERE non viene utilizzata nella query DELETE di MySQL, tutte le righe in una determinata tabella verranno eliminate.
Esempio di query di eliminazione di MySQL
Prima di entrare in una discussione più dettagliata sul comando DELETE, inseriamo alcuni dati di esempio nella tabella dei filmati con cui lavorare.
INSERT INTO `movies` (`title`, `director`, `year_released`, `category_id`) VALUES ('The Great Dictator', 'Chalie Chaplie', 1920, 7);INSERT INTO `movies` (`title`, `director`, `category_id`) VALUES ('sample movie', 'Anonymous', 8);INSERT INTO movies (`title`, `director`, `year_released`, `category_id`) VALUES ('movie 3', 'John Brown', 1920, 8);
L'esecuzione dello script precedente aggiunge tre (3) film nella tabella dei filmati. Prima di andare oltre nella nostra lezione, mettiamo tutti i film nella nostra tabella. Lo script mostrato di seguito lo fa.
SELECT * FROM `movies`;
L'esecuzione dello script precedente ci dà i seguenti risultati.
movie_id | itle | director | year_released | category_id |
---|---|---|---|---|
1 | Pirates of the Caribean 4 | Rob Marshall | 2011 | 1 |
2 | Forgetting Sarah Marshal | Nicholas Stoller | 2008 | 2 |
3 | X-Men | NULL | 2008 | NULL |
4 | Code Name Black | Edgar Jimz | 2010 | NULL |
5 | Daddy's Little Girls | NULL | 2007 | 8 |
6 | Angels and Demons | NULL | 2007 | 6 |
7 | Davinci Code | NULL | 2007 | 6 |
9 | Honey mooners | John Schultz | 2005 | 8 |
16 | 67% Guilty | NULL | 2012 | NULL |
18 | The Great Dictator | Chalie Chaplie | 1920 | 7 |
19 | sample movie | Anonymous | NULL | 8 |
20 | movie 3 | John Brown | 1920 | 8 |
Supponiamo che la videoteca di Myflix non desideri più affittare "Il grande dittatore" ai suoi membri e lo vogliano rimuovere dal database. Il suo ID film è 18, possiamo usare lo script mostrato di seguito per eliminare la sua riga dalla tabella dei film.
DELETE FROM `movies` WHERE `movie_id` = 18;
L'esecuzione dello script precedente in MySQL WorkBench su Myflix elimina il film con ID 18 dalla tabella del database.
Vediamo lo stato attuale della tabella dei film.
SELECT * FROM `movies`;
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
1 | Pirates of the Caribean 4 | Rob Marshall | 2011 | 1 |
2 | Forgetting Sarah Marshal | Nicholas Stoller | 2008 | 2 |
3 | X-Men | NULL | 2008 | NULL |
4 | Code Name Black | Edgar Jimz | 2010 | NULL |
5 | Daddy's Little Girls | NULL | 2007 | 8 |
6 | Angels and Demons | NULL | 2007 | 6 |
7 | Davinci Code | NULL | 2007 | 6 |
9 | Honey mooners | John Schultz | 2005 | 8 |
16 | 67% Guilty | NULL | 2012 | NULL |
19 | sample movie | Anonymous | NULL | 8 |
20 | movie 3 | John Brown | 1920 | 8 |
NOTA:
- il film con ID 18 non è stato restituito nel set di risultati della query.
- non è possibile eliminare una singola colonna per una tabella. Puoi eliminare un'intera riga.
Supponiamo di avere un elenco di film che vogliamo eliminare. Possiamo usare la clausola WHERE insieme a IN.
DELETE FROM `movies` WHERE `movie_id` IN (20,21);
L'esecuzione dello script precedente elimina i film con ID 20 e 21 dalla nostra tabella dei film.
Sommario
- Il comando di eliminazione viene utilizzato per rimuovere i dati non più necessari da una tabella.
- La "clausola WHERE" viene utilizzata per limitare il numero di righe interessate dalla query DELETE.
- Una volta che i dati sono stati eliminati, non possono essere recuperati, quindi si consiglia vivamente di eseguire backup prima di eliminare i dati.