Python MySQL - Insertar datos

Puede agregar nuevas filas a una tabla existente de MySQL usando el INSERT INTOdeclaración. En esto, debe especificar el nombre de la tabla, los nombres de las columnas y los valores (en el mismo orden que los nombres de las columnas).

Sintaxis

A continuación se muestra la sintaxis de la instrucción INSERT INTO de MySQL.

INSERT INTO TABLE_NAME (column1, column2, column3,...columnN)
   VALUES (value1, value2, value3,...valueN);

Ejemplo

La siguiente consulta inserta un registro en la tabla llamado EMPLEADO.

INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) 
   VALUES ('Mac', 'Mohan', 20, 'M', 2000);

Puede verificar los registros de la tabla después de la operación de inserción usando la instrucción SELECT como:

mysql> select * from Employee;
+------------+-----------+------+------+--------+
| FIRST_NAME | LAST_NAME | AGE  | SEX  | INCOME |
+------------+-----------+------+------+--------+
| Mac        | Mohan     |    20| M    | 2000   |
+------------+-----------+------+------+--------+
1 row in set (0.00 sec)

No es obligatorio especificar los nombres de las columnas siempre, si pasa valores de un registro en el mismo orden de las columnas de la tabla, puede ejecutar la instrucción SELECT sin los nombres de columna de la siguiente manera:

INSERT INTO EMPLOYEE VALUES ('Mac', 'Mohan', 20, 'M', 2000);

Insertar datos en una tabla MySQL usando Python

los execute()método (invocado en el objeto cursor) acepta una consulta como parámetro y ejecuta la consulta dada. Para insertar datos, debe pasarle la instrucción INSERT de MySQL como parámetro.

cursor.execute("""INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) 
   VALUES ('Mac', 'Mohan', 20, 'M', 2000)""")

Para insertar datos en una tabla en MySQL usando python:

  • importar mysql.connector paquete.

  • Cree un objeto de conexión utilizando el mysql.connector.connect() método, pasando el nombre de usuario, contraseña, host (predeterminado opcional: localhost) y base de datos (opcional) como parámetros.

  • Cree un objeto de cursor invocando el cursor() método en el objeto de conexión creado anteriormente.

  • Luego, ejecute el INSERT declaración pasándola como parámetro a la execute() método.

Ejemplo

El siguiente ejemplo ejecuta la instrucción SQL INSERT para insertar un registro en la tabla EMPLOYEE:

import mysql.connector
#establishing the connection
conn = mysql.connector.connect(
   user='root', password='password', host='127.0.0.1', database='mydb'
)
#Creating a cursor object using the cursor() method
cursor = conn.cursor()
# Preparing SQL query to INSERT a record into the database.
sql = """INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME)
   VALUES ('Mac', 'Mohan', 20, 'M', 2000)"""
try:
   # Executing the SQL command
   cursor.execute(sql)
   # Commit your changes in the database
   conn.commit()
except:
   # Rolling back in case of error
   conn.rollback()
# Closing the connection
conn.close()

Insertar valores dinámicamente

También puedes usar “%s” en lugar de valores en el INSERT consulta de MySQL y pasarles valores como listas como se muestra a continuación -

cursor.execute("""INSERT INTO EMPLOYEE VALUES ('Mac', 'Mohan', 20, 'M', 2000)""", 
   ('Ramya', 'Ramapriya', 25, 'F', 5000))

Ejemplo

El siguiente ejemplo inserta un registro en la tabla Empleado de forma dinámica.

import mysql.connector
#establishing the connection
conn = mysql.connector.connect(
   user='root', password='password', host='127.0.0.1', database='mydb'
)

#Creating a cursor object using the cursor() method
cursor = conn.cursor()

# Preparing SQL query to INSERT a record into the database.
insert_stmt = (
   "INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME)"
   "VALUES (%s, %s, %s, %s, %s)"
)
data = ('Ramya', 'Ramapriya', 25, 'F', 5000)
try:
   # Executing the SQL command
   cursor.execute(insert_stmt, data)
   # Commit your changes in the database
   conn.commit()
except:
   # Rolling back in case of error
   conn.rollback()
print("Data inserted")
# Closing the connection
conn.close()

Salida

Data inserted