Travailler avec des données dans SQLite

SQLiteSQLiteBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, vous apprendrez les opérations fondamentales pour travailler avec des données dans SQLite, une base de données légère, basée sur des fichiers, idéale pour les débutants. Grâce à une pratique concrète dans l'environnement de la VM LabEx, vous créerez une base de données, configurerez des tables et effectuerez des tâches essentielles telles que l'insertion de données, l'interrogation d'enregistrements, la mise à jour d'informations et la suppression d'entrées. Ce guide étape par étape vous aidera à construire une base solide en gestion de base de données en utilisant des commandes SQL simples, conçues pour ceux qui débutent avec les bases de données.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sqlite(("SQLite")) -.-> sqlite/SQLiteGroup(["SQLite"]) sqlite/SQLiteGroup -.-> sqlite/init_db("Create SQLite Database") sqlite/SQLiteGroup -.-> sqlite/make_table("Create New Table") sqlite/SQLiteGroup -.-> sqlite/add_rows("Insert Multiple Rows") sqlite/SQLiteGroup -.-> sqlite/get_all("Select All Rows") sqlite/SQLiteGroup -.-> sqlite/query_where("Filter With WHERE") sqlite/SQLiteGroup -.-> sqlite/edit_row("Update Single Row") sqlite/SQLiteGroup -.-> sqlite/drop_row("Delete Single Row") subgraph Lab Skills sqlite/init_db -.-> lab-552340{{"Travailler avec des données dans SQLite"}} sqlite/make_table -.-> lab-552340{{"Travailler avec des données dans SQLite"}} sqlite/add_rows -.-> lab-552340{{"Travailler avec des données dans SQLite"}} sqlite/get_all -.-> lab-552340{{"Travailler avec des données dans SQLite"}} sqlite/query_where -.-> lab-552340{{"Travailler avec des données dans SQLite"}} sqlite/edit_row -.-> lab-552340{{"Travailler avec des données dans SQLite"}} sqlite/drop_row -.-> lab-552340{{"Travailler avec des données dans SQLite"}} end

Créer une base de données et une table SQLite

Dans cette première étape, vous allez créer une base de données SQLite et configurer une table pour stocker des données. SQLite est une base de données légère qui stocke les données dans un seul fichier, ce qui la rend facile à utiliser à des fins d'apprentissage.

Tout d'abord, ouvrez votre terminal dans la VM LabEx. Votre chemin d'accès par défaut est /home/labex/project.

Maintenant, créons une base de données SQLite nommée mydb.sqlite. Exécutez la commande suivante pour créer le fichier de base de données et ouvrir l'outil de ligne de commande SQLite :

sqlite3 mydb.sqlite

Vous verrez une invite indiquant que vous êtes maintenant dans l'interpréteur (shell) SQLite :

SQLite version 3.x.x
Enter ".help" for usage hints.
sqlite>

Ensuite, créez une table nommée users pour stocker des informations de base sur les utilisateurs. Cette table aura trois colonnes : id (un identifiant unique), name (nom) et email (adresse e-mail). Entrez la commande SQL suivante à l'invite sqlite> et appuyez sur Entrée :

CREATE TABLE users (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    email TEXT NOT NULL
);

Cette commande configure la table users où :

  • id est un entier qui augmente automatiquement pour chaque nouvelle entrée. La contrainte PRIMARY KEY (clé primaire) garantit que chaque id est unique, et AUTOINCREMENT le fait augmenter automatiquement.
  • name est un champ texte qui ne peut pas être laissé vide (NOT NULL).
  • email est également un champ texte qui ne peut pas être laissé vide (NOT NULL).

Vous ne verrez aucune sortie si la commande s'exécute avec succès.

Insérer des données dans la table

Maintenant que vous avez créé la table users, ajoutons-y des données. Nous allons insérer trois enregistrements d'utilisateurs dans la table.

Insérez trois enregistrements d'utilisateurs dans la table users en exécutant ces commandes une par une à l'invite sqlite> :

INSERT INTO users (name, email) VALUES ('Alice', '[email protected]');
INSERT INTO users (name, email) VALUES ('Bob', '[email protected]');
INSERT INTO users (name, email) VALUES ('Charlie', '[email protected]');

Ces commandes ajoutent trois lignes à la table users. Notez que vous ne spécifiez pas de valeur pour la colonne id car elle s'incrémente automatiquement à chaque nouvelle entrée.

  • INSERT INTO users (name, email) spécifie que vous insérez des données dans les colonnes name et email de la table users.
  • VALUES ('Alice', '[email protected]') fournit les valeurs à insérer pour chaque enregistrement.

Pour confirmer que les données ont été ajoutées correctement, exécutez cette commande pour afficher tous les enregistrements de la table :

SELECT * FROM users;

Résultat attendu :

1|Alice|[email protected]
2|Bob|[email protected]
3|Charlie|[email protected]

Ce résultat affiche l'id, le name et l'email pour chaque enregistrement. La commande SELECT * récupère toutes les colonnes de la table spécifiée.

Interroger les données avec SELECT

Dans cette étape, vous apprendrez à récupérer des données de votre table à l'aide de l'instruction SELECT. L'interrogation de données est une compétence essentielle pour travailler avec des bases de données, car elle vous permet de visualiser et d'analyser les informations stockées.

À l'invite sqlite>, commençons par récupérer toutes les données de la table users. Exécutez cette commande :

SELECT * FROM users;

Résultat attendu :

1|Alice|[email protected]
2|Bob|[email protected]
3|Charlie|[email protected]

Le * dans SELECT * signifie "toutes les colonnes", donc cette commande affiche chaque colonne et chaque ligne de la table users.

Ensuite, vous pouvez choisir des colonnes spécifiques à afficher. Pour voir uniquement les colonnes name et email, exécutez :

SELECT name, email FROM users;

Résultat attendu :

Alice|[email protected]
Bob|[email protected]
Charlie|[email protected]

Cette commande limite la sortie aux colonnes spécifiées, en omettant l'id.

Enfin, filtrez les données en utilisant une condition avec la clause WHERE. Pour afficher uniquement l'enregistrement de 'Alice', exécutez :

SELECT * FROM users WHERE name = 'Alice';

Résultat attendu :

1|Alice|[email protected]

La clause WHERE réduit les résultats aux lignes qui correspondent à la condition, dans ce cas, où le name est 'Alice'.

  • SELECT * FROM users sélectionne toutes les colonnes de la table users.
  • WHERE name = 'Alice' filtre les résultats pour n'inclure que les lignes où la colonne name est égale à 'Alice'.

Mettre à jour les enregistrements dans la table

Maintenant, vous allez apprendre à modifier les données existantes dans votre table à l'aide de l'instruction UPDATE. La mise à jour des enregistrements est importante lorsque vous devez corriger ou modifier des informations dans une base de données.

Tout d'abord, vérifiez les données actuelles dans la table users pour voir ce que vous allez mettre à jour. Exécutez :

SELECT * FROM users;

Résultat attendu :

1|Alice|[email protected]
2|Bob|[email protected]
3|Charlie|[email protected]

Maintenant, mettez à jour l'adresse e-mail de 'Bob' à [email protected]. Entrez cette commande à l'invite sqlite> :

UPDATE users SET email = '[email protected]' WHERE name = 'Bob';

Vous ne verrez aucune sortie si la commande réussit. Cette commande modifie la valeur email pour la ligne où name est 'Bob'. La clause WHERE garantit que seul l'enregistrement correspondant est mis à jour.

  • UPDATE users spécifie que vous mettez à jour la table users.
  • SET email = '[email protected]' définit la nouvelle valeur pour la colonne email.
  • WHERE name = 'Bob' filtre la mise à jour pour ne l'appliquer qu'à la ligne où le name est 'Bob'.

Vérifiez la modification en interrogeant à nouveau la table :

SELECT * FROM users;

Résultat attendu :

1|Alice|[email protected]
2|Bob|[email protected]
3|Charlie|[email protected]

Vous pouvez voir que l'e-mail de Bob a été mis à jour.

Supprimer des enregistrements de la table

Dans cette dernière étape, vous apprendrez à supprimer des données de votre table à l'aide de l'instruction DELETE. La suppression d'enregistrements est nécessaire lorsque vous devez nettoyer des données obsolètes ou incorrectes d'une base de données.

Tout d'abord, affichez les données actuelles dans la table users pour identifier ce que vous allez supprimer. Exécutez :

SELECT * FROM users;

Résultat attendu :

1|Alice|[email protected]
2|Bob|[email protected]
3|Charlie|[email protected]

Maintenant, supprimez l'enregistrement de 'Charlie' en exécutant cette commande :

DELETE FROM users WHERE name = 'Charlie';

Vous ne verrez aucune sortie si la commande réussit. Cette commande supprime la ligne où name est 'Charlie'. La clause WHERE garantit que seul l'enregistrement spécifié est supprimé.

  • DELETE FROM users spécifie que vous supprimez de la table users.
  • WHERE name = 'Charlie' filtre la suppression pour ne l'appliquer qu'à la ligne où le name est 'Charlie'.

Vérifiez la suppression en interrogeant à nouveau la table :

SELECT * FROM users;

Résultat attendu :

1|Alice|[email protected]
2|Bob|[email protected]

Vous pouvez voir que l'enregistrement de Charlie n'est plus dans la table.

Résumé

Dans ce labo, vous avez acquis les compétences essentielles pour travailler avec des données dans SQLite au sein de l'environnement de VM LabEx. Vous avez créé une base de données SQLite et une table, inséré des données à l'aide de l'instruction INSERT INTO, interrogé des informations avec SELECT, mis à jour des enregistrements avec UPDATE et supprimé des entrées à l'aide de DELETE. Ces exercices pratiques ont fourni une introduction complète à la gestion de bases de données, vous dotant des connaissances fondamentales pour gérer efficacement les données à l'aide de SQLite.