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.
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.
Ouvrez un terminal dans l'environnement VM LabEx. Le répertoire par défaut est
/home/labex/project.Connectez-vous à la base de données
employees.dbà l'aide de l'outil en ligne de commandesqlite3:sqlite3 employees.dbCette commande ouvre l'interpréteur (shell) SQLite, indiqué par l'invite
sqlite>.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 tablestaffet 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|ITCette sortie affiche l'
id, lename(nom) et ledepartment(département) de chaque employé dans la tablestaff.Pour quitter l'interpréteur SQLite, tapez :
.quitIMPORTANT : Assurez-vous d'utiliser la commande
.quitavant 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.
Connectez-vous à la base de données
employees.db:sqlite3 employees.dbPour 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 colonnedepartmentest égale àHR. La sortie sera :1|Alice|HR 3|Charlie|HRMaintenant, trouvons les employés avec un
idsupé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 colonneidest supérieure à 3. La sortie sera :4|David|IT 5|Eve|Marketing 6|Frank|ITQuittez l'interpréteur SQLite :
.quitIMPORTANT : Assurez-vous d'utiliser la commande
.quitavant 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).
Connectez-vous à la base de données
employees.db:sqlite3 employees.dbPour 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 colonnenamecommence parA. Le caractère générique%correspond à zéro ou plusieurs caractères. La sortie sera :1|Alice|HRPour 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 colonnenamecontient la lettrei. La sortie sera :1|Alice|HR 3|Charlie|HR 4|David|ITQuittez 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.
Connectez-vous à la base de données
employees.db:sqlite3 employees.dbPour 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
staffet trie les résultats par la colonnenamedans 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|ITPour trier par
namedans l'ordre décroissant, utilisez :SELECT * FROM staff ORDER BY name DESC;Cette commande sélectionne toutes les colonnes de la table
staffet trie les résultats par la colonnenamedans 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|HRQuittez 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.
Connectez-vous à la base de données
employees.db:sqlite3 employees.dbPour 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
staffet limite les résultats aux 3 premières lignes. La sortie sera :1|Alice|HR 2|Bob|IT 3|Charlie|HRCombinez
LIMITavecORDER BYpour obtenir les 2 premiers employés triés parname(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 colonnenamedans l'ordre décroissant et limite les résultats aux 2 premières lignes. La sortie sera :6|Frank|IT 5|Eve|MarketingQuittez 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.


