Comment installer et utiliser SQLite sur Ubuntu 20.04

L’auteur a sélectionné le Free and Open Source Fund pour recevoir un don dans le cadre du programme Write for DOnations.

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 :

Output
3.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 :

Output
SQLite 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);

    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:

    Output
    Error: 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 :

    Output
    1|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:

    Output
    1|Sammy|Greenland Shark|427

    Regardons de plus près cette commande.

    1. D’abord, nous SELECTtoutes les (*) valeurs de notre base de données, sharks.
    2. Puis nous regardons toutes les valeurs id.
    3. 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 TABLEpour 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;
    Output
    1|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 :

    Output
    1|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:

    Output
    1|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:

    Output
    1|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.

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée.