top of page

Tutoriel : Créer simplement une base de données SQLite avec Python

Updated: Nov 15

Qu'est-ce que SQLite ?

Le logiciel SQLite offre un système de gestion de base de données relationnelle (SGBDR). SQLite n'est pas un serveur de base de données autonome, contrairement à d'autres systèmes de gestion de base de données tels que MySQL ou PostgreSQL. Plutôt que cela, il est directement intégré dans l'application. SQLite se distingue par sa légèreté, sa rapidité et sa configuration minimale, ce qui en fait un choix parfait pour les applications embarquées, les tests et les petits projets.


Avantages de SQLite

  • Simplicité : Facile à installer et à utiliser.

  • Aucune configuration requise : Fonctionne directement après l'installation sans besoin de configuration complexe.

  • Portabilité : Les bases de données SQLite sont stockées dans un seul fichier, ce qui facilite leur déplacement et leur sauvegarde.

  • Performances : Pour les petites à moyennes bases de données, SQLite est très performant.

  • Transversalité : Fonctionne sur presque toutes les plateformes (Windows, macOS, Linux, etc.).


Inconvénients de SQLite

  • Capacité limitée : Pas adapté pour des applications à grande échelle avec des centaines de milliers de transactions par seconde.

  • Fonctionnalités limitées : Moins de fonctionnalités avancées par rapport aux SGBDR complets comme MySQL ou PostgreSQL.

  • Sécurité : Moins sécurisé pour les applications nécessitant un haut niveau de sécurité des données.

 

Comparaison avec SQL Server

SQL Server est un SGBDR développé par Microsoft. Il est conçu pour les applications à grande échelle et offre des fonctionnalités avancées pour la gestion des données, la sécurité, les transactions, et bien plus encore.


Avantages de SQL Server

  • Robustesse : Conçu pour les applications à grande échelle avec des exigences de haute performance et de haute disponibilité.

  • Fonctionnalités avancées : Offre des fonctionnalités avancées comme les procédures stockées, les triggers, les vues, etc.

  • Sécurité : Offre des mécanismes de sécurité avancés pour protéger les données.


Inconvénients de SQL Server

  • Complexité : Nécessite une configuration et une gestion complexes.

  • Coût : Les licences peuvent être coûteuses, surtout pour les versions Enterprise.

  • Ressources : Consomme plus de ressources système par rapport à SQLite.


Création d'une base de données SQLite



import sqlite3 : Importe le module sqlite3 qui permet de manipuler une base de données SQLite avec Python.


def connexion(): Définit une fonction nommée connexion qui retournera une connexion à la base de données SQLite.


return sqlite3.connect("BDD.db") : Retourne une connexion à la base de données nommée BDD.db. Si le fichier n'existe pas, il sera créé.



try: : Début d'un bloc try-except pour gérer les exceptions potentielles.


with connexion() as conn: : Utilisation d'un contexte de gestion with pour établir une connexion à la base de données.


cursor = conn.cursor() : Création d'un objet curseur pour exécuter des commandes SQL.


sql = '''CREATE TABLE IF NOT EXISTS Client... : Définition de la commande SQL pour créer la table Client si elle n'existe pas.


cursor.execute(sql) : Exécution de la commande SQL.


conn.commit() : Validation de la transaction pour sauvegarder les changements dans la base de données.


except Exception as e: : Capture des exceptions éventuelles et impression d'un message d'erreur.



Interaction avec la base de données


Insertion de données (INSERT)

Pour insérer des données dans la table Client, nous utilisons la commande SQL INSERT INTO.



sql = "INSERT INTO Client (nom_client, num_client) VALUES (?, ?);" : Définition de la commande SQL pour insérer des données dans la table Client.


cursor.execute(sql, (nom, num)) : Exécution de la commande SQL avec les valeurs fournies.



Sélection de données (SELECT)


Pour récupérer des données de la table Client, nous utilisons la commande SQL SELECT. 



sql = '''SELECT * FROM Client;''' : Commande SQL pour sélectionner toutes les lignes de la table Client.


rows = cursor.fetchall() : Récupération de toutes les lignes sélectionnées.


return rows : Retour des lignes sélectionnées.




Mise à jour de données (UPDATE)


Pour mettre à jour les données dans la table Client, nous utilisons la commande SQL UPDATE.



UPDATE Client : Cela indique à SQLite que nous voulons mettre à jour des données dans la table Client.


SET nom_client = ? : Cette partie de la commande spécifie quelle colonne nous voulons mettre à jour (nom_client) et la nouvelle valeur que nous voulons lui attribuer. Le ? est un placeholder pour la valeur qui sera fournie lors de l'exécution de la commande. Cela aide à prévenir les injections SQL.


WHERE nom_client = ? : Cette clause spécifie la condition qui doit être remplie pour que la mise à jour soit effectuée. Ici, nous disons que nous voulons mettre à jour uniquement les lignes où la colonne nom_client correspond à une certaine valeur. Le deuxième ? est également un placeholder pour cette valeur.





Suppression de données (DELETE)


Pour supprimer des données de la table Client, nous utilisons la commande SQL DELETE.



DELETE FROM Client : Cela indique à SQLite que nous voulons supprimer des enregistrements de la table Client.


WHERE nom_client = ? : Cette clause spécifie la condition qui doit être remplie pour que la suppression soit effectuée. Ici, nous disons que nous voulons supprimer uniquement les lignes où la colonne nom_client correspond à une certaine valeur.





Conclusion

Dans ce tutoriel, vous avez appris comment utiliser SQLite avec Python pour créer et gérer une base de données. Les étapes que nous avons couvertes comprenaient la connexion à la base de données, la création de tables, l'insertion, la sélection, la mise à jour et la suppression de données. Si vous comprenez ces concepts et que vous utilisez les exemples de code fournis, vous pourrez gérer efficacement une base de données SQLite dans vos propres projets Python. Afin de faciliter la visualisation des changements apportés à la base de données, nous avons présenté chaque opération avec le résultat correspondant dans DB Browser for SQLite.


Comments


bottom of page