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

image_pdfimage_print

Dans ce tutoriel nous allons découvrir comment insérer 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 insérer 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 avec Python.
 
 

Exemple 1: Insérer une seule ligne dans une table SQLite

Pour l’instant, la table « person » est vide, donc nous allons insérer des données. Pour effectuer la requête INSERT avec Python, vous devez suivre les étapes suivantes:

  • Tout d’abord, établissez une connexion SQLite à partir de Python.
  • Ensuite, créez un objet curseur à l’aide de l’objet de connexion.
  • Ensuite, définissez la requête INSERT. Ici, vous devez connaître la table et les détails de la colonne.
  • Exécutez la requête INSERT à l’aide de curseur.execute()
  • Après l’exécution réussie d’une requête SQLite, n’oubliez pas de valider vos modifications dans la base de données.
  • Fermez la connexion à la base de données SQLite.
  • N’oubliez pas non plus de détecter les exceptions SQLite, le cas échéant.
  • Enfin, vérifiez le résultat en sélectionnant les données de la table SQLite.

Regardons maintenant le programme.

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

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

    sql = "INSERT INTO person (name, address) VALUES ('Alex','Paris')"

    count = cur.execute(sql)
    conn.commit()
    print("Enregistrement inséré avec succès dans la table person")
    cur.close()
    conn.close()
    print("Connexion SQLite est fermée")

except sqlite3.Error as error:
    print("Erreur lors de l'insertion dans la table person", error)

Sortie:

Connexion réussie à SQLite
Enregistrement inséré avec succès dans la table person
Connexion SQLite est fermée

 
 

Exemple 2: Utilisation de variables Python dans une requête INSERT

Parfois, nous devons insérer une valeur de variable dans une colonne de table. Cette valeur peut être n’importe quoi, un nombre, une date, une chaîne, etc.

Nous utilisons une requête paramétrée pour insérer des variables Python dans une table. En utilisant une requête paramétrée, nous pouvons passer des variables python comme paramètre de requête (?).

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

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

		sql = "INSERT INTO person (name, address) VALUES (?, ?)"

		value = (name, address)
		cur.execute(sql, value)
		conn.commit()
		print("Enregistrement inséré avec succès dans la table person")
		cur.close()
		conn.close()
		print("Connexion SQLite est fermée")

	except sqlite3.Error as error:
		print("Erreur lors de l'insertion dans la table person", error)


insert_into('Alex', 'Paris')
insert_into('Bob', 'Lille')

Sortie:

Connexion réussie à SQLite
Enregistrement inséré avec succès dans la table person
Connexion SQLite est fermée
Connexion réussie à SQLite
Enregistrement inséré avec succès dans la table person
Connexion SQLite est fermée

 
 

Exemple 3: Insérer plusieurs lignes dans une table SQLite

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

Nous pouvons ajouter 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

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

		sql = "INSERT INTO person (name, address) VALUES (?, ?)"

		cur.executemany(sql, liste)
		conn.commit()
		print("Enregistrements insérés avec succès dans la table person")
		cur.close()
		conn.close()
		print("Connexion SQLite est fermée")

	except sqlite3.Error as error:
		print("Erreur lors de l'insertion dans la table person", error)


liste = [('Alex', 'Paris'),
         ('Bob', 'Lille'),
         ('Emily', 'Nantes')]

insert_into(liste)

Sortie:

Connexion réussie à SQLite
Enregistrements insérés avec succès dans la table person
Connexion SQLite est fermée

A l’aide de cur.executemany(sql, liste), nous avons inséré plusieurs lignes dans la table « person ».
 

Partagez cet article

Laisser un commentaire

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