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](https://user.oc-static.com/upload/2021/01/18/16109618304011_P3_CREATE%20VIEW-creer-une-vue_static.png)
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](https://user.oc-static.com/upload/2021/01/18/16109619652866_P3_CREATE%20VIEW-faire-appel-vue_static.png)
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 !