Inserción en MySQL
Este artículo cubre las inserciones en MySQL con Python, desde operaciones básicas hasta mejores prácticas. Al final, tendrás una comprensión completa de cómo usar Python para insertar datos en una base de datos MySQL.
Introducción
Python y MySQL son dos de las herramientas más populares utilizadas en la industria tecnológica. Python es un lenguaje de programación de alto nivel que es fácil de aprender y cuenta con una vasta biblioteca de módulos. MySQL es un sistema de gestión de bases de datos relacionales de amplio uso, utilizado para almacenar y gestionar datos.
Insertar datos en una base de datos MySQL utilizando Python es una tarea fundamental. Esta guía cubre los pasos para insertar datos, junto con las mejores prácticas para garantizar que tu código sea eficiente y escalable.
Configuración
Antes de sumergirnos en el código, debemos asegurarnos de tener las herramientas necesarias instaladas. Necesitaremos instalar los siguientes paquetes:
- Python
- MySQL Connector/Python
Una vez que hayas instalado estos paquetes, podemos pasar al siguiente paso, que es establecer una conexión con la base de datos MySQL.
Establecer una conexión con la base de datos MySQL
Para insertar datos en una base de datos MySQL usando Python, primero debemos establecer una conexión con la base de datos. Podemos hacerlo utilizando el módulo MySQL Connector/Python.
Para establecer una conexión, necesitamos proporcionar la siguiente información:
- Nombre del host
- Nombre de usuario
- Contraseña
- Nombre de la base de datos
Una vez establecida la conexión, podemos crear un objeto cursor para ejecutar sentencias SQL.
Conectar a una base de datos MySQL usando Python
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="mydatabase"
)
mycursor = mydb.cursor()Inserción de datos
Ahora que hemos establecido una conexión, podemos insertar datos. Existen dos métodos principales:
- Insertar una sola fila
- Insertar múltiples filas
Nota: Asegúrate de que tu tabla customers exista con las columnas name y address antes de ejecutar los ejemplos a continuación.
Insertar una sola fila
Para insertar una sola fila en una base de datos MySQL, podemos usar la sentencia INSERT INTO.
Insertar una sola fila en una base de datos MySQL en Python
sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = ("John", "Highway 21")
try:
mycursor.execute(sql, val)
mydb.commit()
print(mycursor.rowcount, "record inserted.")
print("Last inserted ID:", mycursor.lastrowid)
except mysql.connector.Error as err:
print(f"Error: {err}")
mydb.rollback()
finally:
mycursor.close()
mydb.close()Nota: La sintaxis del marcador de posición %s es específica del controlador mysql-connector-python. Usa mycursor.lastrowid para recuperar el ID de autoincremento de la fila recién insertada.
Insertar múltiples filas
Para insertar múltiples filas en una base de datos MySQL, podemos usar el método executemany().
Insertar múltiples filas en una base de datos MySQL usando Python
sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = [
('Peter', 'Lowstreet 4'),
('Amy', 'Apple st 652'),
('Hannah', 'Mountain 21'),
('Michael', 'Valley 345'),
('Sandy', 'Ocean blvd 2'),
('Betty', 'Green Grass 1'),
('Richard', 'Sky st 331'),
('Susan', 'One way 98'),
('Vicky', 'Yellow Garden 2'),
('Ben', 'Park Lane 38'),
('William', 'Central st 954'),
('Chuck', 'Main Road 989'),
('Viola', 'Sideway 1633')
]
try:
mycursor.executemany(sql, val)
mydb.commit()
print(mycursor.rowcount, "records inserted.")
except mysql.connector.Error as err:
print(f"Error: {err}")
mydb.rollback()
finally:
mycursor.close()
mydb.close()Conclusión
Esta guía cubrió los conceptos básicos para insertar datos en una base de datos MySQL usando Python, incluida la configuración de la conexión, inserciones de una sola fila e inserciones masivas con executemany(). Siguiendo estas técnicas, puedes almacenar y gestionar datos de manera eficiente. Gracias por leer. Si tienes alguna pregunta o comentario, no dudes en dejar un comentario a continuación.