Python MySQL Delete From

Удаление записей

Вы можете использовать предложение "DELETE FROM" для удаления записей из существующей таблицы:

Пример

Удалите любые записи с адресом "Mountain 21"

import mysql.connector
mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  passwd="yourpassword",
  database="mydatabase"
)
mycursor = mydb.cursor()
sql = "DELETE FROM customers WHERE address = 'Mountain 21'
mycursor.execute(sql)
mydb.commit()
print(mycursor.rowcount, "записей(ы) удалено(ы)")

Запуск примера

Важно:Пожалуйста, обратите внимание на использование предложения mydb.commit()Необходимо выполнить изменения, в противном случае таблица не изменится.

Пожалуйста, обратите внимание на использование подзапроса WHERE в грамматике DELETE: подзапрос WHERE определяет, какие записи должны быть удалены. Если подзапрос WHERE пропущен, будут удалены все записи!

Предотвращение SQL-инъекций

Хорошей привычкой также является escaping любого значения запроса в операторе delete.

Эта мера предназначена для предотвращения SQL-инъекций, это распространенная техника хакеров, которая может разрушить или злоупотребить вашей базой данных.

Модуль mysql.connector использует占емники %s Для escaping значений в операторе delete:

Пример

Использование占емников %s Методы для escaping значений:

import mysql.connector
mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  passwd="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, "записей(ы) удалено(ы)")

Запуск примера