INSERT INTO en Python en MySQL
En Python, puedes realizar una inserción en una base de datos MySQL utilizando el módulo
mysql.connector
. Aquí podrás aprender cómo realizar una sentencia
INSERT INTO
para agregar datos a una tabla en MySQL.
INSERT INTO en Python
Ejemplo para insertar un registro en la tabla de
"clientes"
:
Ejemplo
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="tu_usuario",
passwd="tu_contraseña",
database="tu_bbdd"
)
mycursor = mydb.cursor()
sql = "INSERT INTO clientes (nombre, direccion) VALUES (%s, %s)"
val = ("Carlos", "C/Mayor 1")
mycursor.execute(sql, val)
mydb.commit()
print(mycursor.rowcount, "registro insertado")
El ejemplo se realiza una inserción en la tabla "clientes" de una base de datos MySQL utilizando el módulo
mysql.connector
en Python. La sentencia
INSERT INTO
agrega un nuevo registro con los valores proporcionados en las columnas
"nombre"
y
"direccion"
. Después de la inserción, se realiza un commit para guardar los cambios en la base de datos, y finalmente se imprime el número de registros afectados por la inserción.
Recuerda que debes reemplazar
"tu_usuario"
,
"tu_contraseña"
,
"tu_bbdd"
y los valores de
val
con los datos correspondientes de tu base de datos y los nuevos registros que deseas insertar.
Este es un ejemplo básico de cómo realizar una inserción en MySQL desde Python, y es útil para agregar nuevos datos a una tabla en una base de datos MySQL.
Importante : Es necesario realizar los cambios, de lo contrario no se realizarán cambios en la tabla.
Insertar filas múltiples con INSERT INTO en Python
Para insertar varias filas en una tabla, use el método
executemany()
.
El segundo parámetro del método
executemany()
es una lista de tuplas, que contiene los datos que desea insertar:
Ejemplo de insertar filas múltiples con INSERT INTO en Python
Llene la tabla de
"clientes"
con datos:
Ejemplo
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="tu_usuario",
passwd="tu_contraseña",
database="tu_bbdd"
)
mycursor = mydb.cursor()
sql = "INSERT INTO clientes (nombre, direccion) VALUES (%s, %s)"
val = [
('Ana', 'C/ Mayor 1'),
('Carlos', 'C/Arriba 10'),
('Vanesa', 'C/Samaranch 156'),
('Antonio, 'Plaza de Mexico 16'),
('Enrique', 'Calle de la Rosa 36'),
('Javi', 'C/ Marzo 23'),
('Agus', 'C/ La Montaña')
]
mycursor.executemany(sql, val)
mydb.commit()
print(mycursor.rowcount, "Se ha insertado")
En el ejemplo se explica cómo insertar múltiples filas en una tabla de MySQL utilizando el método
executemany()
en Python. En este caso, estamos insertando varios registros en la tabla
"clientes"
con las columnas
"nombre"
y
"direccion"
. A continuación, se describen los pasos que realiza el código:
-
Importar el módulo
mysql.connector. - Establecer la conexión a la base de datos MySQL utilizando los detalles de host, usuario, contraseña y nombre de la base de datos proporcionados.
- Crear un objeto cursor para interactuar con la base de datos.
-
Definir la sentencia SQL para la inserción de datos en la tabla
"clientes". La sentencia SQL tiene dos parámetros%sque serán reemplazados con los valores de"nombre"y"direccion". -
Crear una lista
valque contiene las tuplas de datos a insertar en la tabla. Cada tupla contiene los valores para"nombre"y "direccion" correspondientes a una fila a ser insertada. -
Utilizar el método
executemany()del cursor para ejecutar la sentencia SQL con la lista de datos.executemany()es utilizado cuando se desea insertar múltiples filas en una sola operación. -
Hacer un
commit()para guardar los cambios en la base de datos. -
Imprimir la cantidad de filas que se han insertado, que se obtiene a través del atributo
rowcountdel objeto cursor.
Es importante tener en cuenta que la cantidad de elementos en la lista
val
debe coincidir con la cantidad de parámetros de la sentencia SQL para una inserción exitosa.
Con este ejemplo, se insertan múltiples filas en la tabla
"clientes"
de la base de datos, cada una con su respectivo nombre y dirección.
Obtener ID insertada en Python MySQL
Puede obtener el
ID
de la fila que acaba de insertar preguntando el objeto del cursor.
Importante : Si inserta más de una fila, se devuelve el ID de la última fila insertada.
Ejemplo para obtener ID insertada en Python MySQL
Inserte una fila y devuelva el
:
ID
Ejemplo
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="tu_usuario",
passwd="tu_contraseña",
database="tu_bbdd"
)
mycursor = mydb.cursor()
sql = "INSERT INTO clientes (nombre, direccion) VALUES (%s, %s)"
val = ("Javier", "C/Marzo 23")
mycursor.execute(sql, val)
mydb.commit()
print("1 registro insertado, ID", mycursor.lastrowid)
Este código utiliza el atributo
lastrowid
del objeto cursor para obtener el
ID
de la última fila insertada en la tabla
"clientes"
. Aquí está el código explicado paso a paso:
-
Importar el módulo
mysql.connector. - Establecer la conexión a la base de datos MySQL utilizando los detalles de host, usuario, contraseña y nombre de la base de datos proporcionados.
- Crear un objeto cursor para interactuar con la base de datos.
-
Definir la sentencia SQL para la inserción de datos en la tabla
"clientes". La sentencia SQL tiene dos parámetros%sque serán reemplazados con los valores de"nombre"y"direccion". -
Crear una tupla
valque contiene los valores para "nombre" y"direccion"correspondientes a una fila a ser insertada. -
Utilizar el método
execute()del cursor para ejecutar la sentencia SQL con los valores de la tuplaval. Esto insertará una nueva fila en la tabla"clientes". -
Hacer un
commit()para guardar los cambios en la base de datos. -
Utilizar el atributo
lastrowiddel objeto cursor para obtener elIDde la última fila insertada. Este atributo devuelve elIDautoincremental generado por MySQL para la fila recién insertada. -
Imprimir el mensaje indicando que se insertó un registro junto con el
IDde la fila insertada.
El resultado será un mensaje como este:
Ejemplo
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="tu_usuario",
passwd="tu_contraseña",
database="tu_bbdd"
)
mycursor = mydb.cursor()
sql = "INSERT INTO clientes (nombre, direccion) VALUES (%s, %s)"
val = ("Carlos", "C/Mayor 1")
mycursor.execute(sql, val)
mydb.commit()
print(mycursor.rowcount, "registro insertado")
Donde
"1"
es el
ID
de la última fila insertada en la tabla
"clientes"
. Cabe mencionar que el atributo
lastrowid
solo funciona cuando la tabla tiene una columna de
ID
autoincremental. Si la tabla no tiene una columna autoincremental, el valor de
lastrowid
será
None
.
Practica INSERT INTO en Python en 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: Mysql Insert Into
Practica mysql insert into en el editor interactivo.
Ejemplo
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="tu_usuario",
passwd="tu_contraseña",
database="tu_bbdd"
)
mycursor = mydb.cursor()
sql = "INSERT INTO clientes (nombre, direccion) VALUES (%s, %s)"
val = ("Carlos", "C/Mayor 1")
mycursor.execute(sql, val)
mydb.commit()
print(mycursor.rowcount, "registro insertado")
Comprueba lo aprendido
Responde 2–3 preguntas sobre esta lección. Verás ✓ en verde si aciertas o ✗ en rojo si fallas.