Python MySQL - Insérer des données
Vous pouvez ajouter de nouvelles lignes à une table existante de MySQL en utilisant le INSERT INTOdéclaration. Dans ce cas, vous devez spécifier le nom de la table, les noms de colonne et les valeurs (dans le même ordre que les noms de colonne).
Syntaxe
Voici la syntaxe de l'instruction INSERT INTO de MySQL.
INSERT INTO TABLE_NAME (column1, column2, column3,...columnN)
VALUES (value1, value2, value3,...valueN);
Exemple
La requête suivante insère un enregistrement dans la table nommée EMPLOYEE.
INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME)
VALUES ('Mac', 'Mohan', 20, 'M', 2000);
Vous pouvez vérifier les enregistrements de la table après l'opération d'insertion en utilisant l'instruction SELECT comme -
mysql> select * from Employee;
+------------+-----------+------+------+--------+
| FIRST_NAME | LAST_NAME | AGE | SEX | INCOME |
+------------+-----------+------+------+--------+
| Mac | Mohan | 20| M | 2000 |
+------------+-----------+------+------+--------+
1 row in set (0.00 sec)
Il n'est pas obligatoire de toujours spécifier les noms des colonnes, si vous passez les valeurs d'un enregistrement dans le même ordre que les colonnes de la table, vous pouvez exécuter l'instruction SELECT sans les noms de colonnes comme suit -
INSERT INTO EMPLOYEE VALUES ('Mac', 'Mohan', 20, 'M', 2000);
Insérer des données dans une table MySQL à l'aide de Python
le execute()(invoquée sur l'objet curseur) accepte une requête comme paramètre et exécute la requête donnée. Pour insérer des données, vous devez lui transmettre l'instruction MySQL INSERT en tant que paramètre.
cursor.execute("""INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME)
VALUES ('Mac', 'Mohan', 20, 'M', 2000)""")
Pour insérer des données dans une table dans MySQL en utilisant python -
importer mysql.connector paquet.
Créez un objet de connexion à l'aide de mysql.connector.connect() méthode, en lui passant le nom d'utilisateur, le mot de passe, l'hôte (par défaut facultatif: localhost) et la base de données (facultatif) en tant que paramètres.
Créez un objet curseur en invoquant le cursor() méthode sur l'objet de connexion créé ci-dessus.
Ensuite, exécutez le INSERT instruction en la passant comme paramètre au execute() méthode.
Exemple
L'exemple suivant exécute l' instruction SQL INSERT pour insérer un enregistrement dans la table 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()
Insertion dynamique de valeurs
Vous pouvez aussi utiliser “%s” au lieu de valeurs dans le INSERT requête de MySQL et leur transmettre les valeurs sous forme de listes comme indiqué ci-dessous -
cursor.execute("""INSERT INTO EMPLOYEE VALUES ('Mac', 'Mohan', 20, 'M', 2000)""",
('Ramya', 'Ramapriya', 25, 'F', 5000))
Exemple
L'exemple suivant insère un enregistrement dans la table Employee de manière dynamique.
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()
Production
Data inserted