L’auteur a sélectionné le Free and Open Source Fund pour recevoir un don dans le cadre du programme Write for DOnations.
- Introduction
- Prérequis
- Etape 1 – Installation de SQLite sur Ubuntu 20.04
- Etape 2 – Création d’une base de données SQLite
- Etape 3 – Créer une table SQLite
- Insertion de valeurs dans des tables
- Étape 4 – Lecture de tables dans SQLite
- Etape 5 – Mise à jour des tables en SQLite
- Ajouter des colonnes aux tables SQLite
- Mise à jour des valeurs dans les tables SQLite
- Etape 6 – Suppression d’informations dans SQLite
- Étape 7 – Joindre des informations dans SQLite
- Conclusion
Introduction
SQLite est un système de gestion de base de données libre et multiplateforme. Il est populaire pour son efficacité et sa capacité à s’interfacer avec de nombreux langages de programmation différents.
Dans ce tutoriel, vous allez installer SQLite sur Ubuntu 20.04. Vous créerez ensuite une base de données, lirez des données à partir de celle-ci, insérerez des éléments, supprimerez des éléments et joindrez des éléments provenant de tables distinctes.
Note : Ce tutoriel comprend des instructions pratiques pour installer et utiliser SQLite. Il ne couvre pas les questions conceptuelles plus larges et les préoccupations de production, telles que le moment où l’on devrait, ou non, envisager d’utiliser une base de données SQLite. Pour une excellente vue d’ensemble des bases de données relationnelles populaires et comment elles se comparent, consultez notre article, SQLite vs MySQL vs PostgreSQL : A Comparison Of Relational Database Management Systems.
En outre, de nombreux langages maintiennent des intégrations avec SQLite. Pour obtenir des instructions sur l’utilisation de SQLite à l’intérieur de votre code Python, consultez notre tutoriel, Comment utiliser le module sqlite3
dans Python 3.
Prérequis
Pour compléter ce tutoriel, vous aurez besoin :
- D’une machine ou d’un serveur local exécutant Ubuntu 20.04. Pour configurer un serveur, y compris un utilisateur sudo non root et un pare-feu, vous pouvez créer un Droplet DigitalOcean exécutant Ubuntu 20.04, puis suivre notre guide de configuration initiale du serveur.
Etape 1 – Installation de SQLite sur Ubuntu 20.04
Pour installer l’interface de ligne de commande SQLite sur Ubuntu, mettez d’abord à jour votre liste de paquets :
- sudo apt update
Installez maintenant SQLite :
- sudo apt install sqlite3
Pour vérifier l’installation, vérifiez la version du logiciel :
- sqlite --version
Vous recevrez une sortie comme celle-ci :
Output3.31.1 2020-01-27 19:55:54 3bfa9cc97da10598521b342961df8f5f68c7388fa117345eeb516eaa837balt1
Avec SQLite installé, vous êtes maintenant prêt à créer une nouvelle base de données.
Etape 2 – Création d’une base de données SQLite
Dans cette étape, vous allez créer une base de données contenant différents requins et leurs attributs. Pour créer la base de données, ouvrez votre terminal et exécutez cette commande sqlite3
:
- sqlite3 sharks.db
Cela va créer une nouvelle base de données nommée sharks
. Si le fichier sharks.db
existe déjà, SQLite ouvrira une connexion à celui-ci ; s’il n’existe pas, SQLite le créera.
Vous recevrez une sortie comme celle-ci :
OutputSQLite version 3.31.1 2020-01-27 19:55:54Enter ".help" for usage hints.
Après cela, votre invite changera. Un nouveau préfixe, sqlite>
, apparaît maintenant:
Avec votre base de données Shark créée, vous allez maintenant créer une nouvelle table et la remplir de données.
Etape 3 – Créer une table SQLite
Les bases de données SQLite sont organisées en tables. Les tables permettent de stocker des informations. Pour mieux visualiser une table, on peut imaginer des lignes et des colonnes.
Le reste de ce tutoriel suivra une convention commune pour la saisie des commandes SQLite. Les commandes SQLite sont en majuscules et les informations utilisateur en minuscules. Les lignes doivent se terminer par un point-virgule.
Maintenant, créons une table et quelques colonnes pour diverses données :
- Un identifiant
- Le nom du requin
- Le type de requin
- La longueur moyenne du requin (en centimètres)
Utilisez la commande suivante pour créer la table :
- CREATE TABLE sharks(id integer NOT NULL, name text NOT NULL, sharktype text NOT NULL, length integer NOT NULL);
L’utilisation de NOT NULL
rend ce champ obligatoire. Nous discuterons de NOT NULL
plus en détail dans la section suivante.
Après avoir créé la table, une invite vide reviendra. Maintenant, insérons quelques valeurs dans celle-ci.
Insertion de valeurs dans des tables
En SQLite, la commande pour insérer des valeurs dans une table suit cette forme générale :
- INSERT INTO tablename VALUES(values go here);
Où tablename
est le nom de votre table, et values
vont à l’intérieur des parenthèses.
Insérez maintenant trois lignes de VALUES
dans votre tableau sharks
:
- INSERT INTO sharks VALUES (1, "Sammy", "Greenland Shark", 427);
- INSERT INTO sharks VALUES (2, "Alyoshka", "Great White Shark", 600);
- INSERT INTO sharks VALUES (3, "Himari", "Megaladon", 1800);
Parce que vous avez spécifié précédemment NOT NULL
pour chacune des variables de votre tableau, vous devez entrer une valeur pour chacune.
Par exemple, essayez d’ajouter un autre requin sans définir sa longueur:
- INSERT INTO sharks VALUES (4, "Faiza", "Hammerhead Shark");
Vous recevrez cette erreur:
OutputError: table sharks has 4 columns but 3 values were supplied
Dans cette étape, vous avez créé une table et inséré des valeurs dans celle-ci. Dans l’étape suivante, vous lirez à partir de votre table de base de données.
Étape 4 – Lecture de tables dans SQLite
Dans cette étape, nous nous concentrerons sur les méthodes les plus basiques de lecture de données à partir d’une table. Sachez que SQLite fournit des méthodes plus spécifiques pour visualiser les données dans les tables.
Pour visualiser votre table avec toutes les valeurs insérées, utilisez SELECT
:
- SELECT * FROM sharks;
Vous verrez les entrées précédemment insérées :
Output1|Sammy|Greenland Shark|4272|Alyoshka|Great White Shark|6003|Himari|Megaladon|1800
Pour visualiser une entrée en fonction de son id
(les valeurs que nous avons définies manuellement), ajoutez la commande WHERE
à votre requête:
- SELECT * FROM sharks WHERE id IS 1;
Cela renverra le requin dont le id
est égal à 1
:
Output1|Sammy|Greenland Shark|427
Regardons de plus près cette commande.
- D’abord, nous
SELECT
toutes les (*
) valeurs de notre base de données,sharks
. - Puis nous regardons toutes les valeurs
id
. - Puis nous retournons toutes les entrées de la table où
id
est égal à1
.
Jusqu’à présent, vous avez créé une table, inséré des données dans celle-ci, et interrogé ces données enregistrées. Maintenant, vous allez mettre à jour la table existante.
Etape 5 – Mise à jour des tables en SQLite
Dans les deux sections suivantes, vous allez d’abord ajouter une nouvelle colonne dans votre table existante, puis mettre à jour les valeurs existantes dans la table.
Ajouter des colonnes aux tables SQLite
SQLite vous permet de modifier votre table en utilisant la commande ALTER TABLE
. Cela signifie que vous pouvez créer de nouvelles lignes et colonnes, ou modifier les lignes et colonnes existantes.
Utilisez ALTER TABLE
pour créer une nouvelle colonne. Cette nouvelle colonne suivra l’âge de chaque requin en années:
- ALTER TABLE sharks ADD COLUMN age integer;
Vous avez maintenant une cinquième colonne, age
.
Mise à jour des valeurs dans les tables SQLite
En utilisant la commande UPDATE
, ajoutez de nouvelles valeurs age
pour chacun de vos requins:
- UPDATE sharks SET age = 272 WHERE id=1;
- UPDATE sharks SET age = 70 WHERE id=2;
- UPDATE sharks SET age = 40 WHERE id=3;
Output1|Sammy|Greenland Shark|427|2722|Alyoshka|Great White Shark|600|703|Himari|Megaladon|1800|40
Dans cette étape, vous avez modifié la composition de votre table et ensuite mis à jour les valeurs à l’intérieur de la table. Dans l’étape suivante, vous allez supprimer des informations d’une table.
Etape 6 – Suppression d’informations dans SQLite
Dans cette étape, vous allez supprimer des entrées dans votre table en fonction de l’évaluation d’un argument.
Dans la commande suivante, vous interrogez votre base de données et lui demandez de supprimer tous les requins de votre table sharks
dont l’âge est inférieur à 200:
- DELETE FROM sharks WHERE age <= 200;
La frappe de SELECT * FROM sharks;
vérifiera que Alyoshka
et Himari
, qui avaient chacun moins de 200 ans, ont été supprimés. Il ne reste que Sammy
le requin du Groenland :
Output1|Sammy|Greenland Shark|427|272
Étape 7 – Joindre des informations dans SQLite
Imaginons que nous ayons deux tables : notre table actuelle sharks
et une table endangered
. Maintenant, que se passerait-il si la table endangered
avait une valeur id
qui correspondait aux id
de votre table sharks
, et si elle avait aussi une valeur status
qui indiquait l’état de conservation de chaque requin ?
Si vous vouliez interroger les données des deux tables, vous pourriez utiliser l’une des quatre commandes de jointure de SQLite :
INNER JOIN
OUTER JOIN
LEFT JOIN
CROSS JOIN
Créons cette deuxième table et utilisons ensuite INNER JOIN
pour joindre quelques données.
D’abord, créez votre table endangered
:
- CREATE TABLE endangered (id integer NOT NULL, status text NOT NULL);
- INSERT INTO endangered VALUES (1, "near threatened");
Puis joignez vos tables:
- SELECT * FROM sharks INNER JOIN endangered on sharks.id = endangered.id;`
Votre sortie ressemblera à ceci:
Output1|Sammy|Greenland Shark|427|272|1|near threatened
Notez que la sortie inclut également la valeur id
de endangered
. Vous pouvez spécifier la sortie désirée avec une commande plus explicite:
- SELECT sharks.id, sharks.name, sharks.sharktype, sharks.length, sharks.age, endangered.status FROM sharks INNER JOIN endangered on sharks.id = endangered.id;
Cette fois, la sortie exclut la deuxième valeur id
:
Output1|Sammy|Greenland Shark|427|272|near threatened
Vous avez maintenant joint avec succès les informations de plusieurs tables.
Conclusion
SQLite est un outil utile pour la gestion des bases de données. On peut rapidement créer une base de données et la manipuler avec diverses commandes. À la suite de ce tutoriel, vous avez maintenant une compréhension de base de SQLite et vous êtes prêt à plonger plus profondément dans ce système de gestion de base de données.
Pour un excellent aperçu des systèmes de bases de données relationnelles et de leur comparaison, consultez notre article, SQLite vs MySQL vs PostgreSQL : A Comparison Of Relational Database Management Systems.
En outre, de nombreux langages maintiennent des intégrations avec SQLite. Pour des instructions sur l’utilisation de SQLite à l’intérieur de votre code Python, consultez notre tutoriel, Comment utiliser le module sqlite3
en Python 3.