Python MySQL Delete From By
Smazat záznam
Záznamy z existující tabulky můžete odstranit pomocí příkazu "DELETE FROM":
Příklad
Smažte všechny záznamy, kde je adresa „Mountain 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")
Důležité!: Všimněte si prohlášení:
mydb.commit()
. Je nutné provést změny, jinak se v tabulce neprovedou žádné změny.
Všimněte si klauzule WHERE v syntaxi DELETE: Klauzule WHERE určuje, které záznamy by měly být odstraněny. Pokud vynecháte klauzuli WHERE, všechny záznamy budou smazány!
Zabránit vkládání SQL
Považuje se za dobrou praxi uniknout hodnotám libovolného dotazu, a to i v příkazech delete.
Je to proto, aby se zabránilo injekcím SQL, což je běžná technika hackování webu za účelem zničení nebo zneužití vaší databáze.
Modul mysql.connector používá zástupný symbol %s
k escapování hodnot v příkazu delete:
Příklad
Escape hodnoty pomocí zástupné %s
metody:
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")