Python MySQL Delete From

Eliminar registros

Puede usar la sentencia "DELETE FROM" para eliminar registros de una tabla existente:

Ejemplo

Eliminar cualquier registro con la dirección "Mountain 21":

import mysql.connector
mydb = mysql.connector.connect(
  host="localhost",
  user="suusuario",
  passwd="sucontraseña",
  database="mydatabase"
)
mycursor = mydb.cursor()
sql = "DELETE FROM customers WHERE address = 'Mountain 21'
mycursor.execute(sql)
mydb.commit()
print(mycursor.rowcount, "registro(s) eliminado(s)")

Ejecutar Ejemplo

Importante:Por favor, preste atención a la sentencia mydb.commit()Necesita realizarse cambios, de lo contrario, la tabla no tendrá ningún cambio.

Por favor, preste atención a la cláusula WHERE en la sintaxis DELETE: la cláusula WHERE especifica qué registros deben eliminarse. Si se omite la cláusula WHERE, se eliminarán todos los registros!

Prevenir la inyección SQL

Es una buena práctica escapar cualquier valor de consulta en una sentencia delete.

Esto se hace para evitar la inyección SQL, una técnica común de pirateo de red, que puede dañar o abusar de su base de datos.

El módulo mysql.connector utiliza marcadores de posición %s Para escapar valores en una sentencia delete:

Ejemplo

Uso de marcadores de posición %s Métodos para escapar valores:

import mysql.connector
mydb = mysql.connector.connect(
  host="localhost",
  user="suusuario",
  passwd="sucontraseña",
  database="mydatabase"
)
mycursor = mydb.cursor()
sql = "DELETE FROM customers WHERE address =" %s"
adr = ("Jardín Amarillo 2", )
mycursor.execute(sql, adr)
mydb.commit()
print(mycursor.rowcount, "registro(s) eliminado(s)")

Ejecutar Ejemplo