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")