Auto jointure - exercice

Vidéo non disponible ! Réessayez plus tard
Cette vidéo fait partie de la formation
Apprendre MySQL 8.0 par la pratique
Revoir le teaser Je m'abonne
Transcription

Cette leçon fait partie de la formation
89,00€ Je commande

Formation incluse dans l'abonnement Elephorm Je m'abonne à Elephorm

DescriptionProgrammeAvis

Cette leçon fait partie de la formation
89,00€ Je commande

Formation incluse dans l'abonnement Elephorm Je m'abonne à Elephorm

Être capable de créer et exploiter une base de données MySQL au quotidien de manière autonome.

Cette formation a été conçue à destination d'un public sans connaissances préalables sur les bases de données, avec l'ambition de transmettre les notions fondamentales permettant d'entrer sereinement et efficacement dans l'univers des bases de données, et d'exploiter MySQL au quotidien de manière autonome.

Elle permet de tirer parti de logiciels de qualité conçus spécialement pour travailler avec les bases de données : MySQL Workbench et Datagrip.

Elle met l'accent sur la pratique, et comprend de nombreuses démonstrations, mises en situations, exercices corrigés et commentés.

Elle met à disposition en ressources téléchargeables 3 bases de données portant sur des thèmes variés (médicaments vétérinaires, sécurité routière, prénoms), les scripts SQL des démonstrations les plus longues, et intègre un code promotionnel vous permettant de bénéficier d'une prolongation à 4 mois de la période d'essai gratuite de Datagrip.

Voir plus
La vidéo précédente sur les auto-jointures et la récursivité a été relativement complexe. Je vous propose un exercice de mise en application et vous demande d'afficher la liste des médicaments injectables destinés aux oiseaux. Prenez le temps de réfléchir à la solution, ce n'est pas si simple. Je vous donne un indice, il faudra faire une requête sur 5 tables. Mettez la vidéo en pause et je vous donne la solution dans un instant. J'espère que vous avez réussi à trouver la solution, je vous montre comment procéder. Déjà, on va procéder par étapes. On va récupérer les médicaments destinés aux oiseaux dans un premier temps. On va d'abord sélectionner la liste des animaux qui sont assimilables à des oiseaux. Ouvrons la table animaux. On constate qu'on a une dinde, une oie, une poule, un faisan, un pigeon. Tout ça est assimilable à des oiseaux. En fait, on va avoir une liste d'enregistrement ici, qu'il va falloir conserver. On va procéder déjà à la récursivité. Assurons-nous que cette requête retourne déjà bien les résultats qu'on attend. C'est effectivement le cas. On a effectivement dans cette liste uniquement des oiseaux. Je vais commenter cette instruction SQL. Encore une fois, il s'agit d'une requête récursive. Ça veut dire que le résultat affiché s'exécute et se construit de manière itérative, c'est-à-dire en plusieurs passes. Lors de la première itération, on renvoie un enregistrement contenant l'ID du nom et l'ID du parent d'un animal pour lequel le nom est oiseau. Lors des itérations suivantes, on récupère l'ID, le nom et le parent d'un animal pour lequel le parent a l'ID retourné lors de l'itération précédente. On procède de la même manière à l'itération suivante, de sorte qu'on réussit à avoir au bout de l'itération la liste de tous les animaux qui sont assimilables à des oiseaux. L'ensemble de ces résultats sont associés pour former une table temporaire qu'on a nommée ici CTE, qui comporte un ID, un nom et un parent, donc trois colonnes. Cette table n'existe pas réellement en tant qu'objet dans notre base de données. Elle n'existe que le temps de notre requête et on peut y faire référence ultérieurement dans une requête pour en extraire des informations. Ici, j'en extrais le nom. Ce qui va m'intéresser, plutôt que le nom, ça va être désormais l'ID, puisque je vais me servir de cette table CTE pour établir une jointure interne avec la table MEDOC et avec la table MEDOC animaux. Alors, allons-y. Je fais un SELECT FROM MEDOC AS M JOIN Alors MEDOC animaux AS M A ON M.ID égal MEDOC animaux.MEDOC ID JOIN CTE ce coup-ci AS C ON MEDOC animaux.AnimalID est égal à C.ID En exécutant cette requête, je récupère la liste des médicaments qui sont administrables à des animaux figurant parmi la liste des oiseaux que j'ai affichée plus bas. Alors, on n'a toujours pas indiqué précisément quelles étaient les colonnes que l'on souhaitait projeter. En mettant l'astérix, on indique qu'on veut toutes les colonnes. Ici, ce n'est pas le cas. On en veut seulement certaines. Et en l'occurrence, on va uniquement conserver le nom du médicament. Il faut aussi avoir en tête que lorsqu'on exécute une requête qui fait appel à une CTE, il faut exécuter la CTE en même temps que la requête. Donc, on sélectionne l'ensemble des deux requêtes et on fait un contrôle entrée pour exécuter l'ensemble des deux requêtes. Et donc, on a ici la liste des médicaments qui sont utilisables chez les oiseaux. Seulement, dedans, il y a des médicaments qui sont injectables et d'autres qui ne le sont pas. Donc, il va falloir que l'on rajoute une jointure pour intégrer la voie d'administration du médicament. On fait un retour à la ligne et on va rajouter deux nouvelles jointures. Donc, join MedocVoieAsMV on m.id="mv.medocid". JoinVoieAsV on m.id="mv.void="v.id". On souhaite ne conserver que les médicaments qui sont injectables. Donc, il faut faire une restriction where v.injectable="1". Si on regarde dans les voies, on constate qu'il y a une colonne qui vaut 0 si la voie n'est pas injectable et 1 si la voie est injectable. D'où notre restriction ici. Et puis, ce qu'on peut faire à la rigueur, c'est rajouter un orderBy m.nom="asc". On sélectionne l'ensemble, puis on exécute. Et on a ici la liste des médicaments destinés aux volailles et qui sont utilisables par voie injectable. Alors, on constate qu'on a des doublons. Donc, on peut les éliminer en rajoutant un distinct ici. Réexécutons notre quête. Et voilà, on a désormais les médicaments administrables aux oiseaux, quels qu'ils soient, par voie injectable. Donc, on voit qu'on a, en particulier, pas mal de vaccins, ce qui est particulièrement logique.

Programme détaillé

Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Unions 06:39
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Nos dernières formations Code & Data
  • Nouveau
    Webflow - Créer la landing Page d'OpenAI
    Découvrir
    À l'issue de cette formation, les participants seront capables de créer de manière autonome une landing page sophistiquée, similaire à celle d'OpenAI, en utilisant les fonctionnalités avancées de Webflow pour le design responsive et les interactions.
    3h48 19 leçons
  • Apprendre Svelte 3 et SvelteKit 1.0
    Découvrir
    Créez des applications web modernes et ultra-rapides avec notre formation "Apprendre Svelte 3 et SvelteKit 1.0". Rejoignez-nous et devenez un expert du développement JavaScript ! 🚀 #Svelte #SvelteKit #DéveloppementWeb
    7h42 77 leçons
  • Apprendre Vue JS 3
    Découvrir
    Apprenez à créer des applications web modernes avec notre formation "Apprendre Vue JS 3". Rejoignez-nous et maîtrisez ce puissant framework JavaScript ! 🚀 #VueJS #FormationWeb #Développement
    11h47 91 leçons
  • Gratuit
    Apprendre ChatGPT
    Découvrir
    Ce cours vise à fournir une compréhension approfondie de l'intelligence artificielle, en se concentrant sur l'utilisation pratique de ChatGPT et DALL-E. Les participants découvriront comment l'IA peut transformer des domaines variés tels que le marketing, le développement web, et le design graphique. Le contenu couvre les bases de l'IA, l'art de créer des prompts efficaces, l'utilisation de plugins avancés, et le codage assisté par IA. Des projets pratiques permettront d'appliquer ces connaissances dans des scénarios réels. Destiné aux professionnels de la technologie, aux marketeurs, aux développeurs, et à toute personne intéressée par l'IA, ce cours est une opportunité d'acquérir des compétences innovantes et applicables dans divers contextes professionnels et créatifs. Les prérequis incluent une compréhension basique de l'informatique et un intérêt pour l'IA. Le cours promet une aventure d'apprentissage enrichissante, ouvrant de nouvelles perspectives dans l'utilisation de l'intelligence artificielle.
    3h12 30 leçons
  • Créer sa boutique de e-commerce avec Shopify
    Découvrir
    À la fin de cette formation, vous aurez les compétences nécessaires pour créer et gérer votre propre boutique de e-commerce prospère avec Shopify. Transformez vos idées en succès commercial en ligne ! 
    4h10 39 leçons

éditeur de vidéos pédagogiques

Des supports pédagogiques en vidéo, produits avec les meilleurs experts. Dans nos studios à Paris, Lyon ou Montpellier. Vous souhaitez travailler avec nous ?
image-micro