Interrogation et filtrage de données

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 labo, vous apprendrez à interroger et à filtrer des données dans une base de données SQLite. Ce labo pratique est conçu pour les débutants et vous présentera les techniques SQL essentielles. Vous apprendrez à filtrer les données à l'aide de la clause WHERE, à faire correspondre des modèles avec LIKE, à trier les résultats avec ORDER BY et à limiter le nombre de résultats avec LIMIT. À la fin de ce labo, vous serez en mesure de récupérer efficacement des données spécifiques à partir d'une base de données.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sqlite(("SQLite")) -.-> sqlite/SQLiteGroup(["SQLite"]) sqlite/SQLiteGroup -.-> sqlite/get_all("Select All Rows") sqlite/SQLiteGroup -.-> sqlite/query_where("Filter With WHERE") sqlite/SQLiteGroup -.-> sqlite/sort_data("Sort With ORDER BY") subgraph Lab Skills sqlite/get_all -.-> lab-552338{{"Interrogation et filtrage de données"}} sqlite/query_where -.-> lab-552338{{"Interrogation et filtrage de données"}} sqlite/sort_data -.-> lab-552338{{"Interrogation et filtrage de données"}} end

Se connecter à SQLite et visualiser les données

Dans cette première étape, vous vous connecterez à une base de données SQLite nommée employees.db et visualiserez les données contenues dans la table staff. Cela vous permettra de comprendre les données avec lesquelles vous travaillerez.

  1. Ouvrez un terminal dans l'environnement VM LabEx. Le répertoire par défaut est /home/labex/project.

  2. Connectez-vous à la base de données employees.db à l'aide de l'outil en ligne de commande sqlite3 :

    sqlite3 employees.db

    Cette commande ouvre l'interpréteur (shell) SQLite, indiqué par l'invite sqlite>.

  3. Visualisez les données dans la table staff. Exécutez la commande SQL suivante :

    SELECT * FROM staff;

    Cette commande sélectionne toutes les colonnes (*) de la table staff et affiche les résultats. Vous devriez voir la sortie suivante :

    1|Alice|HR
    2|Bob|IT
    3|Charlie|HR
    4|David|IT
    5|Eve|Marketing
    6|Frank|IT

    Cette sortie affiche l'id, le name (nom) et le department (département) de chaque employé dans la table staff.

  4. Pour quitter l'interpréteur SQLite, tapez :

    .quit

    IMPORTANT : Assurez-vous d'utiliser la commande .quit avant de cliquer sur le bouton "Continue". Sinon, l'étape ne pourra pas être vérifiée car l'historique sqlite ne sera pas enregistré.

Filtrer les données avec la clause WHERE

La clause WHERE vous permet de filtrer les données en fonction de conditions spécifiques. Vous pouvez l'utiliser pour récupérer uniquement les lignes qui répondent à vos critères.

  1. Connectez-vous à la base de données employees.db :

    sqlite3 employees.db
  2. Pour récupérer uniquement les employés du département HR (Ressources Humaines), utilisez la commande SQL suivante :

    SELECT * FROM staff WHERE department = 'HR';

    Cette commande sélectionne toutes les colonnes de la table staff, mais inclut uniquement les lignes où la colonne department est égale à HR. La sortie sera :

    1|Alice|HR
    3|Charlie|HR
  3. Maintenant, trouvons les employés avec un id supérieur à 3 :

    SELECT * FROM staff WHERE id > 3;

    Cette commande sélectionne toutes les colonnes de la table staff, mais inclut uniquement les lignes où la colonne id est supérieure à 3. La sortie sera :

    4|David|IT
    5|Eve|Marketing
    6|Frank|IT
  4. Quittez l'interpréteur SQLite :

    .quit

    IMPORTANT : Assurez-vous d'utiliser la commande .quit avant de cliquer sur le bouton "Continue". Sinon, l'étape ne pourra pas être vérifiée car l'historique sqlite ne sera pas enregistré.

Correspondance de motifs avec l'opérateur LIKE

L'opérateur LIKE est utilisé pour la correspondance de motifs (pattern matching). Il est utile lorsque vous souhaitez trouver des données qui correspondent à un motif spécifique, plutôt qu'à une valeur exacte. Vous utiliserez des caractères génériques (wildcards) comme % (zéro ou plusieurs caractères) et _ (un seul caractère).

  1. Connectez-vous à la base de données employees.db :

    sqlite3 employees.db
  2. Pour trouver les employés dont le nom commence par A, utilisez la commande suivante :

    SELECT * FROM staff WHERE name LIKE 'A%';

    Cette commande sélectionne toutes les colonnes de la table staff, mais inclut uniquement les lignes où la colonne name commence par A. Le caractère générique % correspond à zéro ou plusieurs caractères. La sortie sera :

    1|Alice|HR
  3. Pour trouver les employés dont le nom contient la lettre i, utilisez :

    SELECT * FROM staff WHERE name LIKE '%i%';

    Cette commande sélectionne toutes les colonnes de la table staff, mais inclut uniquement les lignes où la colonne name contient la lettre i. La sortie sera :

    1|Alice|HR
    3|Charlie|HR
    4|David|IT
  4. Quittez l'interpréteur SQLite :

    .quit

Trier les données avec la clause ORDER BY

La clause ORDER BY vous permet de trier les résultats de votre requête. Vous pouvez trier dans l'ordre croissant (par défaut) ou décroissant.

  1. Connectez-vous à la base de données employees.db :

    sqlite3 employees.db
  2. Pour trier les données par ordre alphabétique par name (nom) dans l'ordre croissant, utilisez :

    SELECT * FROM staff ORDER BY name;

    Cette commande sélectionne toutes les colonnes de la table staff et trie les résultats par la colonne name dans l'ordre croissant (de A à Z). La sortie sera :

    1|Alice|HR
    2|Bob|IT
    3|Charlie|HR
    4|David|IT
    5|Eve|Marketing
    6|Frank|IT
  3. Pour trier par name dans l'ordre décroissant, utilisez :

    SELECT * FROM staff ORDER BY name DESC;

    Cette commande sélectionne toutes les colonnes de la table staff et trie les résultats par la colonne name dans l'ordre décroissant (de Z à A). La sortie sera :

    6|Frank|IT
    5|Eve|Marketing
    4|David|IT
    3|Charlie|HR
    2|Bob|IT
    1|Alice|HR
  4. Quittez l'interpréteur SQLite :

    .quit

Limiter les résultats avec la clause LIMIT

La clause LIMIT restreint le nombre de lignes renvoyées par une requête. Ceci est utile lorsque vous n'avez besoin que d'un sous-ensemble des données.

  1. Connectez-vous à la base de données employees.db :

    sqlite3 employees.db
  2. Pour récupérer uniquement les 3 premières lignes de la table staff, utilisez :

    SELECT * FROM staff LIMIT 3;

    Cette commande sélectionne toutes les colonnes de la table staff et limite les résultats aux 3 premières lignes. La sortie sera :

    1|Alice|HR
    2|Bob|IT
    3|Charlie|HR
  3. Combinez LIMIT avec ORDER BY pour obtenir les 2 premiers employés triés par name (nom) dans l'ordre décroissant :

    SELECT * FROM staff ORDER BY name DESC LIMIT 2;

    Cette commande sélectionne toutes les colonnes de la table staff, trie les résultats par la colonne name dans l'ordre décroissant et limite les résultats aux 2 premières lignes. La sortie sera :

    6|Frank|IT
    5|Eve|Marketing
  4. Quittez l'interpréteur SQLite :

    .quit

Résumé

Dans ce labo (laboratoire), vous avez appris à interroger et à filtrer des données dans une base de données SQLite. Vous vous êtes connecté(e) à une base de données, avez filtré des données à l'aide de la clause WHERE, avez fait correspondre des modèles avec l'opérateur LIKE, avez trié les résultats avec ORDER BY et avez limité le nombre de lignes renvoyées à l'aide de LIMIT. Ces techniques vous fournissent les compétences fondamentales pour récupérer et organiser efficacement les données.