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.')