• 6 hours
  • Medium

Free online content available in this course.

course.header.alt.is_video

course.header.alt.is_certifying

Got it!

Last updated on 8/26/22

Extrayez des informations spécifiques de votre BDD

Log in or subscribe for free to enjoy all this course has to offer!

Maintenant que votre base de données est remplie, il serait temps d’en extraire des informations pertinentes. En effet, il serait peu utile d’avoir une BDD si cette dernière ne pouvait que stocker de l’information et la ressortir “bêtement”.

Vous allez apprendre dans cette partie comment extraire uniquement l’information qui vous intéresse, et en tirer quelques enseignements !

Avant tout, téléchargez la base de données Foodly pour cette partie.

Vous êtes prêt ? Allons-y !

Isolez un objet unique

Dans la partie précédente, à chaque fois que vous lisiez de la donnée, c’était celle d’une table toute entière.

Or, c’est rarement ce que l’on souhaite.

Imaginons un utilisateur dans votre application Foodly. Il est en train de scanner un aliment lors de ses courses. L’application demandera à la BDD de lui restituer l’aliment en question.

Pour ce faire, il existe une commande en SQL que l’application pourra utiliser pour récupérer uniquement cet aliment.

Si vous vous souvenez bien, vous aviez utilisé cette commande dans la partie précédente afin de restreindre une commande à un seul aliment ou utilisateur, grâce à son id.

Par exemple, la commande :

SELECT * FROM aliment WHERE id = 4;

va nous restituer uniquement l’aliment dont l’id est le numéro 4 !

WHERE  ne se limite pas uniquement aux id. Comment écririez-vous la commande pour récupérer l’aliment poire uniquement ? Réfléchissez bien, je suis sûr que vous pouvez trouver !

Vous donnez votre langue au chat ? 🐱

La voici :

SELECT * FROM aliment WHERE nom =poire”;

Eh oui, c’est aussi simple que ça !

Vous pouvez appliquer  WHERE  à n’importe quelle colonne en utilisant le nom de cette colonne.

Isolez plusieurs objets répondant à un critère de comparaison

OK, c’est utile de ne pouvoir sélectionner qu’un seul objet. Mais admettons que votre utilisateur souhaite voir tous les aliments bio de son hypermarché, ou bien ceux qui ne sont pas trop caloriques.

Comment traduire cela en SQL ?

WHERE  fonctionne avec un principe de comparaison. Dans vos précédentes commandes, vous utilisiez l’opérateur égal (=) pour indiquer que vous ne vouliez que l’objet dont le nom était égal à une valeur.

Or, vous pouvez utiliser tous les opérateurs classiques, tels que :

  • supérieur à ( > ) ;

  • inférieur à ( < ) ;

  • supérieur ou égal à (>=) ;

  • et inférieur ou égal à (<=).

Par exemple, comment afficher tous les aliments dont la teneur en calories n’excède pas (strictement) 90 kcal ?

Je vous laisse un peu de temps pour tester la commande de votre côté…

Voici la réponse :

SELECT * FROM aliment WHERE calories < 90;

Isolez des objets à partir d’une comparaison sur du texte

Dès que vous souhaitez filtrer une donnée sur du texte, en dehors de l’opérateur égal, ça devient impossible.

Vraiment impossible ?

Ce dernier permet de sélectionner les objets dont le texte d’une colonne répond à un modèle spécifique. C’est en fait lui-même un opérateur, car il s’ajoute au sein d’une commande  WHERE  .

Prenons par exemple cette commande :

SELECT * FROM utilisateur WHERE email LIKE%gmail.com”;

À votre avis, que donne cette commande ?

Tapez-la dans votre terminal et regardez. 😉

Eh oui, elle vous affiche tous les utilisateurs dont l’e-mail se termine par “gmail.com”.

Récapitulatif visuel du paragraphe rédigé ci-dessous
L’utilisation du pourcentage (%)

Ordonnez les objets récupérés pour chaque requête

Reprenons l’exemple de notre utilisateur qui cherche à afficher les aliments peu caloriques dans Foodly.

Grâce à ce que vous avez appris, vous pouvez désormais afficher les aliments dont les calories ne dépassent pas un certain seuil.

Ne serait-il pas encore plus utile pour notre utilisateur d’afficher les aliments par ordre croissant de calories ?

C’est possible en SQL. Et ce, grâce au mot cléORDER BY.

Récapitulatif visuel du paragraphe rédigé ci-dessous
Le mot clé ODER BY

Ce mot clé vous permet d’ordonner une colonne par ordre croissant (ascending en anglais, d’où le mot clé SQLASC), ou décroissant (descending en anglais, soit le mot cléDESC).

Voici donc la commande à effectuer pour afficher les aliments par ordre croissant de calories :

SELECT * FROM aliment ORDER BY calories ASC;

Bien sûr, vous pouvez mixer les commandes entre elles ! Voici la commande pour n’afficher que les aliments dont les calories ne dépassent pas 90 kcal, mais de manière décroissante :

SELECT * FROM aliment WHERE calories < 90 ORDER BY calories DESC;

À vous de jouer !

Imaginons que je vous demande tous les aliments qui ne sont pas bio dans la base, classés par ordre décroissant de contenance en protéines.

Comment allez-vous faire cela ?

Prenez un peu de temps pour y réfléchir, tentez d’effectuer la commande vous-même, et on se retrouve pour la correction dans le screencast ci-dessous. 👇

En résumé

  • Vous avez appris comment filtrer la donnée que vous souhaitez récupérer avec la commandeWHERE (et les opérateurs comme= ouLIKE).

  • Vous savez désormais ordonner les résultats d’une requête SQL avec la commandeORDER BY.

Et si nous allions encore un peu plus loin dans les requêtes SQL ? Voyons au chapitre suivant comment effectuer des opération mathématiques. Rien que ça !

Example of certificate of achievement
Example of certificate of achievement