Insérer des données dans une table MySQL avec Python

Pour remplir une table dans MySQL, utilisez l’instruction INSERT INTO. L’exemple suivant insère un enregistrement dans la table « person » de la base de données « my_db »:

# -*- coding: utf-8 -*-
import mysql.connector

#connexion au base de données
db = mysql.connector.connect(
  host = "localhost",
  user = "root",
  password = "",
  database = "my_db"
)

#créer un curseur de base de données pour effectuer des opérations SQL
cur = db.cursor()

#requéte SQL
sql = "INSERT INTO person (name, age) VALUES (%s, %s)"
#les valeurs de la requéte SQL
value = ("Thomas", 21)
#exécuter le curseur avec la méthode execute() et transmis la requéte SQL
cur.execute(sql, value)

#valider la transaction
db.commit()

#afficher le nombre de lignes insérées
print(cur.rowcount, "ligne insérée.")

Sortie:

(1, 'ligne insérée.')

 
 

Insérer plusieurs lignes

Pour insérer plusieurs lignes dans une table, utilisez la méthode executemany().

Le deuxième paramètre de la méthode executemany() est une liste de tuples, contenant les données que vous souhaitez insérer. L’exemple suivant insérer plusieurs lignes dans la table « person » de la base de données « my_db »:

# -*- coding: utf-8 -*-
import mysql.connector

#connexion au base de données
db = mysql.connector.connect(
  host = "localhost",
  user = "root",
  password = "",
  database = "my_db"
)

#créer un curseur de base de données pour effectuer des opérations SQL
cur = db.cursor()

#requéte SQL
sql = "INSERT INTO person (name, age) VALUES (%s, %s)"
#les valeurs de la requéte SQL
value = [
  ('Yohan', 18),
  ('Thomas', 21),
  ('Bob', 55),
  ('Alex', 25),
  ('Emily', 33),
  ('Nicolas', 40),
  ('Ali', 12)
]

#exécuter le curseur avec la méthode executemany() et transmis la requéte SQL
cur.executemany(sql, value)

#valider la transaction
db.commit()

#afficher le nombre de lignes insérées
print(cur.rowcount, "lignes insérées.")

Sortie:

(7, 'lignes insérées.')

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *