Delete From en Python MySQL

El comando DELETE FROM se utiliza para eliminar registros de una tabla en MySQL. A continuación, te muestro un ejemplo paso a paso de cómo usar DELETE FROM en Python con la biblioteca mysql.connector.


Delete From en Python MySQL paso a paso

Aquí te explicamos como poder realizar un DELETE FROM paso a paso:

Importar la biblioteca

Importar la biblioteca mysql.connector

import mysql.connector

Conexión a BBDD

Establecer la conexión a la base de datos

mydb = mysql.connector.connect(
  host="localhost",
  user="tu_usuario",
  passwd="tu_contraseña",
  database="tu_bbdd"
)

Crear un cursor

Crea un cursor para ejecutar las consultas

mycursor = mydb.cursor()

Realizar consulta

Definir la consulta DELETE FROM

sql = "DELETE FROM clientes WHERE nombre = 'Juan'"

En este ejemplo, estamos eliminando los registros de la tabla clientes donde el nombre es ‘Juan’.

Ejecución de la consulta

Ejecutar la consulta y confirmar los cambios

mycursor.execute(sql)
mydb.commit()

Verificar registros

Verificar el número de registros afectados

print(mycursor.rowcount, "registros eliminados")

Es importante tener en cuenta que el método execute() se utiliza para ejecutar la consulta y el método commit() se utiliza para confirmar los cambios en la base de datos. Además, el atributo rowcount del cursor indica el número de registros afectados por la operación de eliminación.


Ejemplo Delete From en Python MySQL

Eliminar cualquier registro donde el país es «Colombia»:

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="tu usuario",
  passwd="tu contraseña",
  database="tu bbdd"
)

mycursor = mydb.cursor()

sql = "DELETE FROM clientes WHERE Pais = 'Colombia'"

mycursor.execute(sql)

mydb.commit()

print(mycursor.rowcount, “record's deleted”)

Observe la declaración: mydb.commit(). Es necesario realizar los cambios, de lo contrario no se realizarán cambios en la tabla.

La cláusula WHERE especifica qué registros deben eliminarse. Si omite la cláusula WHERE, todos los registros serán eliminados


Prevenir la inyección de SQL

Se considera una buena práctica escapar de los valores de cualquier consulta, también en las declaraciones de eliminación. Esto es para evitar inyecciones de SQL, que es una técnica común de piratería para destruir o hacer un mal uso de su base de datos.

El módulo mysql.connector usa el marcador de posición %s para escapar de los valores en la declaración de eliminación:

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="tu usuario",
  passwd="tu contraseña",
  database="tu bbdd"
)

mycursor = mydb.cursor()

sql = "DELETE FROM clientes WHERE direccion = %s"
adr = ("C/Mayor, 1", )

mycursor.execute(sql, adr)

mydb.commit()

print(mycursor.rowcount, "record's deleted")