Python MySQL - Usuń dane
Aby usunąć rekordy z tabeli MySQL, musisz użyć rozszerzenia DELETE FROMkomunikat. Aby usunąć określone rekordy, musisz użyć wraz z nią klauzuli WHERE.
Składnia
Poniżej znajduje się składnia zapytania DELETE w MYSQL -
DELETE FROM table_name [WHERE Clause]
Przykład
Załóżmy, że utworzyliśmy tabelę w MySQL o nazwie PRACOWNICY jako -
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)
A jeśli wstawiliśmy do niego 4 rekordy za pomocą instrukcji INSERT jako -
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);
Podążanie za instrukcją MySQL usuwa rekord pracownika z FIRST_NAME „Mac” .
mysql> DELETE FROM EMPLOYEE WHERE FIRST_NAME = 'Mac';
Query OK, 1 row affected (0.12 sec)
Jeśli odzyskasz zawartość tabeli, zobaczysz tylko 3 rekordy, ponieważ jeden został usunięty.
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)
Jeśli wykonasz instrukcję DELETE bez klauzuli WHERE, wszystkie rekordy z określonej tabeli zostaną usunięte.
mysql> DELETE FROM EMPLOYEE;
Query OK, 3 rows affected (0.09 sec)
Jeśli odzyskasz zawartość tabeli, otrzymasz pusty zestaw, jak pokazano poniżej -
mysql> select * from EMPLOYEE;
Empty set (0.00 sec)
Usuwanie rekordów tabeli za pomocą Pythona
Operacja DELETE jest wymagana, gdy chcesz usunąć niektóre rekordy z bazy danych.
Aby usunąć rekordy w tabeli -
import mysql.connector pakiet.
Utwórz obiekt połączenia przy użyciu mysql.connector.connect() metody, przekazując jako parametry nazwę użytkownika, hasło, host (opcjonalnie domyślnie: localhost) i bazę danych (opcjonalnie).
Utwórz obiekt kursora, wywołując metodę cursor () na obiekcie połączenia utworzonym powyżej.
Następnie wykonaj DELETE instrukcja, przekazując ją jako parametr do execute() metoda.
Przykład
Poniższy program usuwa wszystkie rekordy od PRACOWNIKA, którego WIEK przekracza 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()
Wynik
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)
]