SQLite SQLite a été conçu pour être intégré dans le programme même. Pour des pr
SQLite SQLite a été conçu pour être intégré dans le programme même. Pour des projets plus ambitieux / projets web le choix de MySQL serait plus judicieux. Utiliser le module SQLite Pour importer le module SQLite: # coding: utf-8 import sqlite3 Créer une base de données avec SQLite La aussi pour créer une base de données avec SQLite, rien de plus simple: conn = sqlite3.connect('ma_base.db') Lorsque vous executerez votre programme vous remarquerez que si la base n'existe pas encore, un fichier sera crée dans le dossier de votre programme. Et si celui-ci existe déjà il sera réutilisé. Vous pouvez bien évidemment choisir l'emplacement de votre base de données en renseignant un path, exemple: "/data/ma_base.db" . Il vous faudra cependant vérifier que le dossier existe avant de l'utiliser. Il est également possible de travailler avec une base de données de manière temporaire: conn = sqlite3.connect(':memory:') Lorsque le travail que vous attendiez est terminé, pensez à fermer la connexion vers la base: db.close() Créer une table avec SQLite Voici un exemple de création de table: cursor = conn.cursor() cursor.execute(""" CREATE TABLE IF NOT EXISTS users( id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE, name TEXT, age INTERGER ) """) conn.commit() Supprimer une table avec SQLite: cursor = conn.cursor() cursor.execute(""" DROP TABLE users """) conn.commit() Insérer des données Il existe plusieurs manière d'insérer des données, la plus simple étant celle-ci: cursor.execute(""" INSERT INTO users(name, age) VALUES(?, ?)""", ("olivier", 30)) Vous pouvez passer par un dictionnaire: data = {"name" : "olivier", "age" : 30} cursor.execute(""" INSERT INTO users(name, age) VALUES(:name, :age)""", data) Vous pouvez récupérer l'id de la ligne que vous venez d'insérer de cette manière: id = cursor.lastrowid print('dernier id: %d' % id) Il est également possible de faire plusieurs insert en une seule fois avec la fonction executemany : users = [] users.append(("olivier", 30)) users.append(("jean-louis", 90)) cursor.executemany(""" INSERT INTO users(name, age) VALUES(?, ?)""", users) Récupérer des données Vous pouvez récupérer la première ligne correspondant à votre recherche à l'aide de la fonction fetchone . cursor.execute("""SELECT name, age FROM users""") user1 = cursor.fetchone() print(user1) Le résultat est un tuple: ('olivier', 30) Vous pouvez récupérer plusieurs données de la même recherche en utilisant la fonction fetchall() . cursor.execute("""SELECT id, name, age FROM users""") rows = cursor.fetchall() for row in rows: print('{0} : {1} - {2}'.format(row[0], row[1], row[2])) L'objet curseur fonctionne comme un itérateur, invoquant la méthode fetchall() automatiquement: cursor.execute("""SELECT id, name, age FROM users""") for row in cursor: print('{0} : {1}, {2}'.format(row[0], row[1], row[2])) Pour la recherche spécifique,on utilise la même logique vu précédemment: id = 2 cursor.execute("""SELECT id, name FROM users WHERE id=?""", (id,)) response = cursor.fetchone() Modifier des entrées Pour modifier des entrées: cursor.execute("""UPDATE users SET age = ? WHERE id = 2""", (31,)) SQLite transactions : rollback Pour revenir au dernier commit , utilisez la méthode rollback . conn.rollback() Gestion des erreurs Il est recommandé de toujours encadrer les opérations sur des bases de données et d'anticiper des erreurs: import sqlite3 try: conn = sqlite3.connect('data/users.db') cursor = conn.cursor() cursor.execute(""" CREATE TABLE users( id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE, name TEXT, age INTERGER ) """) conn.commit() except sqlite3.OperationalError: print('Erreur la table existe déjà') except Exception as e: print("Erreur") conn.rollback() # raise e finally: conn.close() Base de comparaison COMMIT ROLLBACK De base COMMIT valide les modifications apportées par la transaction en cours. ROLLBACK efface les modifications apportées par la transaction en cours. Effet Après exécution de l'instruction COMMIT, la transaction ne peut pas être ROLLBACK. Une fois que ROLLBACK est exécuté, la base de données atteint son état précédent, c'est-à- dire avant l'exécution de la première instruction de la transaction. Occurrence COMMIT se produit lorsque la transaction est exécutée avec succès. ROLLBACK se produit lorsque la transaction est abandonnée au milieu de l'exécution. Syntaxe COMMIT; ROLLBACK; uploads/Finance/ sqlite.pdf
Documents similaires
-
74
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jul 19, 2022
- Catégorie Business / Finance
- Langue French
- Taille du fichier 0.0468MB