Update Table | Mise à jour de données avec Python – SQLite

image_pdfimage_print

Dans ce tutoriel nous allons découvrir comment modifier des données dans une table SQLite avec Python.

Avant d’exécuter les programmes Python suivants, assurez-vous de connaître le nom de la table SQLite et les détails de colonne dans lesquels vous souhaitez modifier des données.

Pour ce tutoriel, nous allons utiliser la table « person » présente dans notre base de données SQLite.
 
 
Si aucune table n’est présente dans votre base de données SQLite, veuillez créer une table SQLite et insérer des données dans la table SQLite avec Python.
 

Les étapes pour mettre à jour des données avec Python

Pour l’instant, la table ‘person’ contient cinq lignes, alors modifions l’adresse d’un personne dont l’ID est 2. Pour exécuter la requête UPDATE à partir de Python, vous devez suivre les étapes suivantes :

  • Établissez une connexion SQLite avec Python.
  • Ensuite, créez un objet curseur à l’aide de l’objet de connexion.
  • Ensuite, définissez la requête UPDATE. Ici, vous devez connaître la table et le nom de la colonne que vous souhaitez mettre à jour.
  • Exécutez la requête UPDATE à l’aide de curseur.execute()
  • Après l’exécution réussie de la requête UPDATE, n’oubliez pas de valider vos modifications dans la base de données.
  • Fermez la connexion à la base de données.
  • Capturer toutes les exceptions SQLite qui peuvent survenir au cours du processus.
  • Enfin, vérifiez le résultat en sélectionnant les données d’une table SQLite dans Python.

 
 

Exemple 1: Mettre à jour un seul enregistrement de la table ‘person’
# -*- coding: utf-8 -*-
import sqlite3

try:
    conn = sqlite3.connect('my.db')
    cur = conn.cursor()
    print("Connexion réussie à SQLite")

    sql = "UPDATE person SET address = 'Paris' WHERE id = 2"

    cur.execute(sql)
    conn.commit()
    print("Enregistrement mis à jour avec succès")
	
    cur.close()
    conn.close()
    print("Connexion SQLite est fermée")

except sqlite3.Error as error:
    print("Erreur lors du mis à jour dans la table person", error)

Sortie:

Connexion réussie à SQLite
Enregistrement mis à jour avec succès
Connexion SQLite est fermée

 
 

Exemple 2: Utiliser des variables Python comme paramètres dans une requête Update

Parfois, nous devons mettre à jour une table avec des valeurs lors de l’exécution du programme. Par exemple, lorsque les utilisateurs mettent à jour leur profil ou tout autre détail via l’interface utilisateur dans de tels cas, nous devons mettre à jour la table avec ces nouvelles valeurs.

Il est toujours recommandé d’utiliser une requête paramétrée. La requête paramétrée utilise l’opérateur (?) À l’intérieur de l’instruction SQL qui contiennent les entrées de l’utilisateur. Il nous aide à mettre à jour les valeurs au moment de l’exécution et à éviter les problèmes d’injection SQL.

Regardons maintenant l’exemple:

# -*- coding: utf-8 -*-
import sqlite3

try:
    conn = sqlite3.connect('my.db')
    cur = conn.cursor()
    print("Connexion réussie à SQLite")

    sql = "UPDATE person SET address = ? WHERE id = ?"
    value = ('Paris', 2)
    cur.execute(sql, value)
    conn.commit()
    print("Enregistrement mis à jour avec succès")
	
    cur.close()
    conn.close()
    print("Connexion SQLite est fermée")

except sqlite3.Error as error:
    print("Erreur lors du mis à jour dans la table person", error)

Sortie:

Connexion réussie à SQLite
Enregistrement mis à jour avec succès
Connexion SQLite est fermée

 
 

Exemple 3: Mettre à jour plusieurs enregistrements de la table ‘person’

Dans l’exemple ci-dessus, nous avons utilisé la méthode execute() de l’objet curseur pour mettre à jour un seul enregistrement, mais parfois dans une application Python, nous devons modifier plusieurs lignes dans la table dans une seule requête UPDATE.

Nous pouvons modifier plusieurs enregistrements dans la table SQLite en utilisant la fonction executemany() de l’objet curseur.

La méthode cursor.executemany() accepte deux arguments: la requête SQL et la liste d’enregistrements.

Regardons maintenant le programme.

# -*- coding: utf-8 -*-
import sqlite3

try:
    conn = sqlite3.connect('my.db')
    cur = conn.cursor()
    print("Connexion réussie à SQLite")

    sql = "UPDATE person SET address = ? WHERE id = ?"
    value = [ ('Paris', 2), ('San Francisco', 3), ('New York', 4) ]
    cur.executemany(sql, value)
    conn.commit()
    print("Enregistrements mis à jour avec succès")
	
    cur.close()
    conn.close()
    print("Connexion SQLite est fermée")

except sqlite3.Error as error:
    print("Erreur lors du mis à jour dans la table person", error)

Sortie:

Connexion réussie à SQLite
Enregistrement mis à jour avec succès
Connexion SQLite est fermée

 

Partagez cet article

Laisser un commentaire

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