• 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 5/13/24

Sauvegardez vos requêtes

Sauvegardez vos requêtes

Je ne sais pas vous, mais personnellement, je déteste faire deux fois la même chose.

Vous imaginez devoir retaper la même commande SQL à chaque fois que vous souhaitez extraire le même type de données ? Un enfer. 😨

Heureusement pour nous, MySQL peut nous aider !

Créez une vue

Admettons que vous souhaitiez sauvegarder dans une vue la commande suivante : les utilisateurs dont l’adresse e-mail est une adresse Gmail. Comment faites-vous ?

Eh bien, vous utilisez la commande CREATE VIEW!

Voici la commande :

CREATE VIEW utilisateurs_gmail_vw AS 
    (   SELECT * 
        FROM utilisateur 
        WHERE email LIKE "%gmail.com"
    );
Récapitulatif visuel de la commande. utilisateurs_gmail_vw = nom de la vue à créer. AS SELECT*FROM utilisateur = depuis la table
La commande CREATE VIEW

Je viens de créer la vue “utilisateurs_gmail_vw”. Cette dernière s’utilise désormais comme une table.

Ainsi, pour récupérer les utilisateurs avec une adresse Gmail, plus besoin d’écrire ma requête compliquée !

Avant de passer à la suite, deux petites choses :

  • Notez le mot clé AS  que nous avons rencontré au chapitre précédent.

  • Notez également que j'ai écrit ma commande sur plusieurs lignes et que j'ai mis des parenthèses pour bien voir la requête.

En fait, j'aurais parfaitement pu écrire :

CREATE VIEW utilisateurs_gmail_vw AS SELECT * FROM utilisateur WHERE email LIKE "%gmail.com";

Mais ça n'est pas très lisible.

J'ai préféré écrire :

CREATE VIEW utilisateurs_gmail_vw AS 
    (   SELECT * 
        FROM utilisateur 
        WHERE email LIKE "%gmail.com"
    );

C'est quand même plus lisible, non ? Et si c'est plus lisible, c'est moins d'erreurs demain, et encore moins après-demain. 😀

Utilisez une vue

Bref, revenons à nos moutons et à notre vue.

Si je veux l'utiliser, je n’ai plus qu’à écrire :

SELECT * FROM utilisateurs_gmail_vw;
Récapitulatif visuel de la commande.  SELECT*FROM = récupéer la donnée. utilisateurs_gmail_vw =depuis la vue utilisateurs_gmail_vw
Utilisation de la commande CREATION VIEW avec SELECT * FROM

Le plus utile avec cela, c’est que la vue se comporte comme une vraie table. Vous pouvez ainsi réappliquer d’autres commandes SQL sur cette dernière.

Par exemple : afficher les utilisateurs dont l’adresse e-mail est une adresse Gmail ET dont le prénom contient la lettre “m” :

SELECT * 
FROM utilisateurs_gmail_vw 
WHERE prenom LIKE "%m%";

À vous de jouer !

Essayez à présent par vous-même la création d'une vue. Créez une vue reprenant notre liste des aliments non bio, classés par contenance en protéines (de manière décroissante).

Si vous êtes coincé, la solution est disponible ci-dessous. 👇

En résumé

  • Vous pouvez sauvegarder des requêtes complexes, longues ou que vous utilisez souvent.

  • SQL propose pour cela le concept de vue que l'on crée grâce à la commande CREATE VIEW

  • La commande peut être longue, alors n'hésitez pas à sauter des lignes, à mettre des parenthèses et des indentations pour la rendre lisible.

  • Par convention on note ces vues avec "_vw" à la fin, pour les différencier des "vraies" tables.

  • Une fois créée une vue s'utilise comme une table "normale". 

Avec ce que vous avez appris dans le chapitre précédent et celui-ci, vous êtes devenu un champion des requêtes SQL avancées ! Mais il manque encore une corde à votre arc : écrire des requêtes permettant de récupérer des relations entre différents objets. Voyons ensemble comment faire, dans le chapitre suivant !

Example of certificate of achievement
Example of certificate of achievement