Python MySQL Usuń z By
Usuń rekord
Rekordy z istniejącej tabeli można usunąć za pomocą instrukcji „DELETE FROM”:
Przykład
Usuń wszelkie rekordy, których adres to „Góra 21”:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="mydatabase"
)
mycursor =
mydb.cursor()
sql = "DELETE FROM customers WHERE address =
'Mountain 21'"
mycursor.execute(sql)
mydb.commit()
print(mycursor.rowcount, "record(s) deleted")
Ważne!: Zwróć uwagę na stwierdzenie:
mydb.commit()
. Dokonanie zmian jest wymagane, w przeciwnym razie w tabeli nie zostaną wprowadzone żadne zmiany.
Zwróć uwagę na klauzulę WHERE w składni DELETE: Klauzula WHERE określa, które rekordy należy usunąć. Jeśli pominiesz klauzulę WHERE, wszystkie rekordy zostaną usunięte!
Zapobiegaj wstrzykiwaniu SQL
Dobrą praktyką jest unikanie wartości dowolnego zapytania, także w instrukcjach usuwania.
Ma to na celu zapobieganie wstrzykiwaniu SQL, które jest powszechną techniką hakerską w celu zniszczenia lub niewłaściwego wykorzystania bazy danych.
Moduł mysql.connector używa symbolu zastępczego %s
do ucieczki wartości w instrukcji delete:
Przykład
Wartości ucieczki przy użyciu metody zastępczej %s
:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="mydatabase"
)
mycursor = mydb.cursor()
sql = "DELETE FROM customers WHERE address =
%s"
adr = ("Yellow Garden 2", )
mycursor.execute(sql, adr)
mydb.commit()
print(mycursor.rowcount, "record(s) deleted")