Update Table en Python con MySQL

Práctica en el editor: Los ejemplos de esta lección requieren un servidor MySQL o MongoDB real. En el editor del navegador puedes leer el código y practicar la sintaxis; para ejecutarlo de verdad, usa una instalación local o un contenedor Docker.

Para actualizar una tabla en MySQL utilizando Python, puedes utilizar el módulo mysql.connector usando la declaración UPDATE . A continuación, te muestro un ejemplo de cómo hacerlo:


Ejemplo Python MySQL Update Table

A continuación, te muestro un ejemplo de cómo realizar una actualización en una tabla de MySQL utilizando Python y el módulo mysql.connector .

Sobrescriba la columna de dirección de "Samaranch 32" a "C/ Mayor 42":

Ejemplo

    print("Ejemplo de la lección")
x = 2 + 3
print(x)
  

Aquí tienes una explicación detallada del ejemplo:

  • Establece la conexión a la base de datos MySQL utilizando mysql.connector.connect() y proporcionas los detalles de la conexión como el nombre de usuario, contraseña, host y nombre de la base de datos.
  • Crea un objeto cursor utilizando mydb.cursor() . El cursor se utiliza para ejecutar consultas y recibir los resultados.
  • Define la consulta de actualización en la variable sql . En este caso, la consulta actualiza la columna "direccion" a "C/ Mayor 42" para aquellos registros donde el valor de la columna "address" sea "Samaranch 32". Es importante asegurarse de que la columna y los valores en la consulta estén correctamente escritos y coincidan con la estructura de la tabla.
  • Ejecute la consulta de actualización utilizando mycursor.execute(sql) .
  • Confirme los cambios realizados en la base de datos utilizando mydb.commit() . Es importante utilizar esta función después de realizar una operación que modifique la base de datos para guardar los cambios de manera permanente.
  • Imprime la cantidad de registros afectados por la actualización utilizando mycursor.rowcount .

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

Observe la cláusula WHERE en la sintaxis de UPDATE : La cláusula WHERE especifica qué registro o registros deben actualizarse. Si omite la cláusula WHERE , todos los registros se actualizarán.


Prevenir la inyección de SQL

Las inyecciones de SQL, son técnicas 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:

Es un enfoque es más seguro y se considera una buena práctica al trabajar con bases de datos y consultas que involucran datos proporcionados por el usuario o cualquier fuente externa.

Recuerda que siempre es importante validar y escapar correctamente los valores proporcionados en las consultas de bases de datos para evitar vulnerabilidades de seguridad y proteger tus datos.

Ejemplo para prevenir inyecciones de SQL

Escape de los valores utilizando el método placholder % s :

Ejemplo

    sql = "UPDATE clientes SET ciudad = 'Valencia' WHERE nombre = 'Elena'"
print(sql)
  

Con esta implementación, los valores proporcionados en la tupla val serán escapados adecuadamente por el módulo mysql.connector , asegurando que la consulta sea segura y que no haya riesgo de inyección de SQL.

El código realizará la actualización en la tabla "clientes" cambiando el valor de la columna "direccion" de "C/Mayor 42" a "Samaranch 32" para aquellos registros donde la columna "direccion" sea igual a "C/Mayor 42".

Practica Update Table en Python con MySQL en el editor

Pon en práctica lo aprendido con nuestro editor Python interactivo. Cada ejercicio incluye el código de partida y un botón para abrirlo en una nueva pestaña, donde puedes modificarlo y ejecutarlo.

Ejercicio: Usar print()

Sobrescriba la columna de dirección de "Samaranch 32" a "C/ Mayor 42".

Ejemplo

    sql = "UPDATE clientes SET ciudad = 'Valencia' WHERE nombre = 'Elena'"
print(sql)
  
Abrir en editor

Comprueba lo aprendido

Responde 2–3 preguntas sobre esta lección. Verás ✓ en verde si aciertas o ✗ en rojo si fallas.