Python MySQL - Elimina dati
Per eliminare i record da una tabella MySQL, è necessario utilizzare l'estensione DELETE FROMdichiarazione. Per rimuovere record specifici, è necessario utilizzare la clausola WHERE insieme ad essa.
Sintassi
Di seguito è riportata la sintassi della query DELETE in MYSQL:
DELETE FROM table_name [WHERE Clause]
Esempio
Supponiamo di aver creato una tabella in MySQL con il nome EMPLOYEES come -
mysql> CREATE TABLE EMPLOYEE(
FIRST_NAME CHAR(20) NOT NULL,
LAST_NAME CHAR(20),
AGE INT,
SEX CHAR(1),
INCOME FLOAT
);
Query OK, 0 rows affected (0.36 sec)
E se abbiamo inserito 4 record in esso utilizzando le istruzioni INSERT come -
mysql> INSERT INTO EMPLOYEE VALUES
('Krishna', 'Sharma', 19, 'M', 2000),
('Raj', 'Kandukuri', 20, 'M', 7000),
('Ramya', 'Ramapriya', 25, 'F', 5000),
('Mac', 'Mohan', 26, 'M', 2000);
La seguente dichiarazione MySQL cancella il record del dipendente con FIRST_NAME "Mac".
mysql> DELETE FROM EMPLOYEE WHERE FIRST_NAME = 'Mac';
Query OK, 1 row affected (0.12 sec)
Se recuperi il contenuto della tabella, puoi vedere solo 3 record poiché ne abbiamo eliminato uno.
mysql> select * from EMPLOYEE;
+------------+-----------+------+------+--------+
| FIRST_NAME | LAST_NAME | AGE | SEX | INCOME |
+------------+-----------+------+------+--------+
| Krishna | Sharma | 20 | M | 2000 |
| Raj | Kandukuri | 21 | M | 7000 |
| Ramya | Ramapriya | 25 | F | 5000 |
+------------+-----------+------+------+--------+
3 rows in set (0.00 sec)
Se si esegue l'istruzione DELETE senza la clausola WHERE, tutti i record della tabella specificata verranno eliminati.
mysql> DELETE FROM EMPLOYEE;
Query OK, 3 rows affected (0.09 sec)
Se recuperi il contenuto della tabella, otterrai un set vuoto come mostrato di seguito -
mysql> select * from EMPLOYEE;
Empty set (0.00 sec)
Rimozione dei record di una tabella utilizzando python
L'operazione DELETE è necessaria quando si desidera eliminare alcuni record dal database.
Per eliminare i record in una tabella:
importare mysql.connector pacchetto.
Crea un oggetto connessione usando il mysql.connector.connect() , passando il nome utente, la password, l'host (predefinito opzionale: localhost) e il database (opzionale) come parametri ad esso.
Crea un oggetto cursore richiamando il file cursor() metodo sull'oggetto connessione creato sopra.
Quindi, esegui il file DELETE passandola come parametro al file execute() metodo.
Esempio
Il seguente programma elimina tutti i record dal DIPENDENTE la cui ETÀ è superiore a 20 -
import mysql.connector
#establishing the connection
conn = mysql.connector.connect(
user='root', password='password', host='127.0.0.1', database='mydb')
#Creating a cursor object using the cursor() method
cursor = conn.cursor()
#Retrieving single row
print("Contents of the table: ")
cursor.execute("SELECT * from EMPLOYEE")
print(cursor.fetchall())
#Preparing the query to delete records
sql = "DELETE FROM EMPLOYEE WHERE AGE > '%d'" % (25)
try:
# Execute the SQL command
cursor.execute(sql)
# Commit your changes in the database
conn.commit()
except:
# Roll back in case there is any error
conn.rollback()
#Retrieving data
print("Contents of the table after delete operation ")
cursor.execute("SELECT * from EMPLOYEE")
print(cursor.fetchall())
#Closing the connection
conn.close()
Produzione
Contents of the table:
[('Krishna', 'Sharma', 22, 'M', 2000.0),
('Raj', 'Kandukuri', 23, 'M', 7000.0),
('Ramya', 'Ramapriya', 26, 'F', 5000.0),
('Mac', 'Mohan', 20, 'M', 2000.0),
('Ramya', 'Rama priya', 27, 'F', 9000.0)]
Contents of the table after delete operation:
[('Krishna', 'Sharma', 22, 'M', 2000.0),
('Raj', 'Kandukuri', 23, 'M', 7000.0),
('Mac', 'Mohan', 20, 'M', 2000.0)]