- Appareils embarqués et IoT.
- L'analyse des données.
- Transférer des données d'un systÚme à un autre.
- Archivage des données et (ou) conditionnement des données dans des conteneurs.
- Stockage des données dans une base de données externe ou temporaire.
- Un substitut à une base de données d'entreprise utilisée à des fins de démonstration ou de test.
- Formation, maßtrise par des débutants des techniques pratiques de travail avec une base de données.
- Prototypage et recherche d'extensions expérimentales du langage SQL.
Vous pouvez trouver d' autres raisons d' utiliser cette base de données dans la documentation SQLite . Cet article concerne l'utilisation de SQLite dans le développement Python. Par conséquent, il est particuliÚrement important pour nous que ce SGBD, représenté par le module , soit inclus dans la bibliothÚque standard du langage. Autrement dit, il s'avÚre que pour travailler avec SQLite à partir de code Python, vous n'avez pas besoin d'installer certains logiciels client-serveur, vous n'avez pas besoin de prendre en charge le fonctionnement de certains services chargés de travailler avec le SGBD. Tout ce que vous avez à faire est d'importer le module et de commencer à l'utiliser dans le programme, aprÚs avoir reçu le systÚme de gestion de base de données relationnelle à votre disposition.
sqlite3
sqlite3
Importation de module
Ci-dessus, j'ai dit que SQLite est un SGBD intégré à Python. Cela signifie que pour commencer à travailler avec lui, il suffit d'importer le module correspondant sans l'installer au préalable à l'aide d'une commande comme
pip install
. La commande d'importation SQLite ressemble Ă ceci:
import sqlite3 as sl
Créer une connexion à la base de données
Pour établir une connexion à une base de données SQLite, vous n'avez pas à vous soucier de l'installation des pilotes, de la préparation des chaßnes de connexion et autres. Il est trÚs simple et rapide de créer une base de données et de mettre à votre disposition un objet de connexion à celle-ci:
con = sl.connect('my-test.db')
En exécutant cette ligne de code, nous allons créer une base de données et nous y connecter. Le fait ici est que la base de données à laquelle nous nous connectons n'existe pas encore, de sorte que le systÚme crée automatiquement une nouvelle base de données vide. Si la base de données a déjà été créée (disons que cela provient
my-test.db
de l'exemple prĂ©cĂ©dent), pour vous y connecter, il vous suffit d'utiliser exactement le mĂȘme code.
Fichier de base de données nouvellement créé
Créer une table
Créons maintenant une table dans notre nouvelle base de données:
with con:
con.execute("""
CREATE TABLE USER (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
name TEXT,
age INTEGER
);
""")
Ceci décrit comment ajouter une table
USER
avec trois colonnes à la base de données . Comme vous pouvez le voir, SQLite est en effet un systÚme de gestion de base de données trÚs simple, mais il possÚde toutes les capacités de base que vous attendez d'un systÚme de gestion de base de données relationnelle classique. Nous parlons de la prise en charge des types de données, y compris les types qui autorisent une valeur null
, la prise en charge de la clé primaire et l'auto-incrémentation.
Si ce code fonctionne comme prĂ©vu (la commande ci-dessus, cependant, ne renvoie rien), nous aurons une table Ă notre disposition, prĂȘte Ă travailler avec elle.
Insertion d'enregistrements dans une table
Insérons quelques enregistrements dans la table que
USER
nous venons de créer. Ceci, entre autres, nous donnera la preuve que la table a bien été créée par la commande ci-dessus.
Imaginons que nous devions ajouter plusieurs enregistrements Ă la table avec une seule commande. C'est trĂšs simple de faire cela dans SQLite:
sql = 'INSERT INTO USER (id, name, age) values(?, ?, ?)'
data = [
(1, 'Alice', 21),
(2, 'Bob', 22),
(3, 'Chris', 23)
]
Ici, nous devons définir une expression SQL avec des points d'interrogation (
?
) comme espaces rĂ©servĂ©s. Ătant donnĂ© que nous avons un objet de connexion Ă la base de donnĂ©es Ă notre disposition, nous, aprĂšs avoir prĂ©parĂ© l'expression et les donnĂ©es, pouvons insĂ©rer des enregistrements dans la table:
with con:
con.executemany(sql, data)
AprÚs l'exécution de ce code, aucun message d'erreur n'est reçu, ce qui signifie que les données ont été ajoutées avec succÚs à la table.
ExĂ©cution de requĂȘtes de base de donnĂ©es
Il est maintenant temps de savoir si les commandes que nous venons d'exĂ©cuter ont fonctionnĂ© correctement. ExĂ©cutons une requĂȘte dans la base de donnĂ©es et essayons d'obtenir
USER
des données de la table . Par exemple - nous obtenons des enregistrements relatifs aux utilisateurs dont l'ùge ne dépasse pas 22 ans:
with con:
data = con.execute("SELECT * FROM USER WHERE age <= 22")
for row in data:
print(row)
Le rĂ©sultat de l'exĂ©cution d'une requĂȘte de base de donnĂ©es
Comme vous pouvez le voir, nous avons réussi à obtenir ce dont nous avions besoin. Et c'était trÚs facile de le faire.
De plus, mĂȘme si SQLite est un simple SGBD, il dispose d'un support extrĂȘmement large. Par consĂ©quent, vous pouvez l'utiliser en utilisant la plupart des clients SQL.
J'utilise DBeaver. Jetons un coup d'Ćil Ă quoi cela ressemble.
Connexion à la base de données SQLite à partir du client SQL (DBeaver)
J'utilise le service cloud de Google Colab et je souhaite télécharger un fichier
my-test.db
sur mon ordinateur. Si vous expérimentez SQLite sur un ordinateur, cela signifie que vous pouvez vous y connecter à l'aide du client SQL sans avoir à télécharger le fichier de base de données depuis quelque part.
Dans le cas de DBeaver, pour vous connecter à la base de données SQLite, vous devez créer une nouvelle connexion et sélectionner SQLite comme type de base de données.
Préparation de la connexion dans DBeaver
Ensuite, vous devez trouver le fichier de base de données.
Connexion du fichier de base de données
AprĂšs cela, vous pouvez exĂ©cuter des requĂȘtes SQL sur la base de donnĂ©es. Il n'y a rien de spĂ©cial ici qui diffĂšre du travail avec des bases de donnĂ©es relationnelles rĂ©guliĂšres.
ExĂ©cution de requĂȘtes de base de donnĂ©es
Intégration avec les pandas
Pensez-vous que c'est là que nous terminons notre conversation sur la prise en charge de SQLite en Python? Non, nous avons encore beaucoup à dire. à savoir, puisque SQLite est un module Python standard, il s'intÚgre facilement aux cadres de données pandas.
DĂ©clarons le dataframe:
df_skill = pd.DataFrame({
'user_id': [1,1,2,2,3,3,3],
'skill': ['Network Security', 'Algorithm Development', 'Network Security', 'Java', 'Python', 'Data Science', 'Machine Learning']
})
Dataframe Pandas
Pour enregistrer une dataframe dans la base de données, vous pouvez simplement utiliser sa méthode
to_sql()
:
df_skill.to_sql('SKILL', con)
C'est tout! Nous n'avons mĂȘme pas besoin de crĂ©er une table au prĂ©alable. Les types de donnĂ©es et les caractĂ©ristiques des champs seront configurĂ©s automatiquement en fonction des caractĂ©ristiques de la trame de donnĂ©es. Bien sĂ»r, vous pouvez tout personnaliser vous-mĂȘme si nĂ©cessaire.
Supposons maintenant que nous devions obtenir l'union des tables
USER
et SKILL
, et écrire les données dans datafreym pandas. C'est trÚs simple aussi:
df = pd.read_sql('''
SELECT s.user_id, u.name, u.age, s.skill
FROM USER u LEFT JOIN SKILL s ON u.id = s.user_id
''', con)
Lire les données d'une base de données dans un dataframe pandas Génial
! Maintenant, écrivons ce que nous avons obtenu dans une nouvelle table appelée
USER_SKILL
:
df.to_sql('USER_SKILL', con)
Bien entendu, vous pouvez travailler avec cette table Ă l'aide du client SQL.
Utilisation d'un client SQL pour travailler avec une base de données
RĂ©sultat
Il y a certainement de nombreuses surprises agrĂ©ables en Python que, Ă moins que vous ne les recherchiez spĂ©cifiquement, vous ne remarquerez peut-ĂȘtre pas. Personne n'a cachĂ© ces fonctionnalitĂ©s spĂ©cialement, mais en raison du fait que beaucoup de choses sont intĂ©grĂ©es Ă Python, vous ne pouvez tout simplement pas faire attention Ă certaines de ces fonctionnalitĂ©s, ou, aprĂšs les avoir appris quelque part, oubliez-les.
Ici, j'ai expliqué comment utiliser la bibliothÚque intégrée de Python
sqlite3
pour créer et travailler avec des bases de données. Bien entendu, ces bases de données prennent en charge non seulement l'opération d'ajout de données, mais également les opérations de modification et de suppression d'informations. Je crois que vous, aprÚs avoir appris sqlite3
, vous en ferez l'expĂ©rience vous-mĂȘme.
La chose trÚs importante est que SQLite fait un excellent travail avec les pandas. Il est trÚs facile de lire les données de la base de données en les plaçant dans des dataframes. L'opération de sauvegarde du contenu des dataframes dans une base de données n'est pas moins simple. Cela rend SQLite encore plus facile à utiliser.
J'invite tous ceux qui ont lu jusqu'ici à faire leurs propres recherches à la recherche de fonctionnalités Python intéressantes!
Le code que j'ai dĂ©montrĂ© dans cet article peut ĂȘtre trouvĂ© ici .
Utilisez-vous SQLite dans vos projets Python?