Python MySQL - inserir dados

Você pode adicionar novas linhas a uma tabela existente do MySQL usando o INSERT INTOdeclaração. Nesse caso, você precisa especificar o nome da tabela, os nomes das colunas e os valores (na mesma ordem dos nomes das colunas).

Sintaxe

A seguir está a sintaxe da instrução INSERT INTO do MySQL.

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

Exemplo

A consulta a seguir insere um registro na tabela denominada EMPLOYEE.

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

Você pode verificar os registros da tabela após a operação de inserção usando a instrução 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)

Não é obrigatório especificar os nomes das colunas sempre, se você passar os valores de um registro na mesma ordem das colunas da tabela, você pode executar a instrução SELECT sem os nomes das colunas da seguinte maneira -

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

Inserindo dados na tabela MySQL usando python

o execute()método (invocado no objeto cursor) aceita uma consulta como parâmetro e executa a consulta fornecida. Para inserir dados, você precisa passar a instrução INSERT do MySQL como um parâmetro para ele.

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

Para inserir dados em uma tabela no MySQL usando python -

  • importar mysql.connector pacote.

  • Crie um objeto de conexão usando o mysql.connector.connect() , passando o nome de usuário, senha, host (padrão opcional: localhost) e banco de dados (opcional) como parâmetros para ele.

  • Crie um objeto cursor invocando o cursor() método no objeto de conexão criado acima

  • Então, execute o INSERT declaração, passando-o como um parâmetro para o execute() método.

Exemplo

O exemplo a seguir executa a instrução SQL INSERT para inserir um registro na tabela 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()

Inserir valores dinamicamente

Você também pode usar “% s” em vez de valores no INSERT consulta do MySQL e passa os valores para eles como listas, conforme mostrado abaixo -

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

Exemplo

O exemplo a seguir insere um registro na tabela Employee dinamicamente.

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

Resultado

Data inserted