Python MySQL - Inserisci dati

Puoi aggiungere nuove righe a una tabella esistente di MySQL utilizzando il INSERT INTOdichiarazione. In questo caso, è necessario specificare il nome della tabella, i nomi delle colonne e i valori (nello stesso ordine dei nomi delle colonne).

Sintassi

Di seguito è riportata la sintassi dell'istruzione INSERT INTO di MySQL.

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

Esempio

La seguente query inserisce un record nella tabella denominata EMPLOYEE.

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

È possibile verificare i record della tabella dopo l'operazione di inserimento utilizzando l'istruzione SELECT come:

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

Non è obbligatorio specificare sempre i nomi delle colonne, se si passano i valori di un record nello stesso ordine delle colonne della tabella è possibile eseguire l'istruzione SELECT senza i nomi delle colonne come segue:

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

Inserimento di dati nella tabella MySQL utilizzando python

Il execute()(richiamato sull'oggetto cursore) accetta una query come parametro ed esegue la query data. Per inserire i dati, è necessario passare l'istruzione MySQL INSERT come parametro ad esso.

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

Per inserire dati in una tabella in MySQL usando python -

  • importare mysql.connector pacchetto.

  • Crea un oggetto connessione usando il mysql.connector.connect() , passando il nome utente, la password, l'host (predefinito opzionale: localhost) e il database (opzionale) come parametri ad esso.

  • Crea un oggetto cursore richiamando il file cursor() metodo sull'oggetto connessione creato sopra

  • Quindi, esegui il file INSERT passandola come parametro al file execute() metodo.

Esempio

L'esempio seguente esegue l'istruzione SQL INSERT per inserire un record nella tabella 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()

Inserimento di valori dinamicamente

Puoi anche utilizzare "% s" al posto dei valori nel file INSERT query di MySQL e passare loro i valori come elenchi come mostrato di seguito -

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

Esempio

L'esempio seguente inserisce dinamicamente un record nella tabella 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.
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()

Produzione

Data inserted