Auto jointure

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
On va voir désormais un cas particulier de jointure interne qui est l'auto-jointure. Je vous explique de quoi il s'agit. Dans notre base de données médicaments, on a une table animaux qui comporte trois colonnes. Une colonne ID, une colonne parent ID. Donc l'ID est bien sûr la clé primaire, et parent est une clé étrangère qui fait référence à l'ID de la même table. C'est-à-dire qu'on a le même type de relation qu'on avait auparavant, donc une relation de type 1 à plusieurs, sauf qu'elle s'établit au sein de la même table. Ici par exemple, une espèce est associée à un autre enregistrement de la même table. Par exemple ici, l'agneau est associé à l'enregistrement d'ID 40, qui est ici ovin. Ovin est associé à l'enregistrement numéro 74 de la même table, qui est petit ruminant. Petit ruminant est associé à l'enregistrement 77, qui est ruminant. Et ruminant est associé à l'enregistrement 66, qui est toutes espèces. Donc ça nous permet de créer ici un système hiérarchique, en disant qu'un agneau est un petit ruminant, qu'un ruminant est un ruminant. Et bien entendu, on peut tirer parti de cette association entre enregistrements en faisant une joueture interne. Ça nous permet par exemple de savoir quelles sont les espèces qui sont regroupées sous le nom de ruminants. Alors, voyons voir comment procéder. On veut donc toutes les espèces qui sont associées, qui ont pour parents ruminants. On va faire un SELECT fromAnimalsAsEnfants joinAnimalsAsParents onEnfants.parents est égal à parents.id Ce que l'on souhaite maintenant, c'est de faire en sorte que le parent soit un ruminant. Donc il faut rajouter une restriction where parents.nom égal ruminant On va ensuite projeter seulement la colonne qui nous intéresse. Ici, c'est dans enfants.nom et on va faire un ORDER BY On va faire des retours à lignes pour que ce soit plus lisible. Et on va exécuter cette requête. Donc ici, j'ai comme enfants, deux ruminants, bovin et petit ruminant. Effectivement, si on regarde dans notre table, ruminant c'était 77. Si je trie la colonne parents par ordre alphabétique, on constate qu'il n'y a effectivement que deux lignes qui ont comme parents un enregistrement d'id égal 77. Petit ruminant et bovin, ce qu'on avait ici. Le problème, c'est que les petits ruminants et les bovins sont eux-mêmes des parents d'autres enregistrements. Ça veut dire qu'en fait, si on veut tous les ruminants, il va falloir procéder de manière récursive. C'est quelque chose qui se fait en MySQL et qui est beaucoup plus compliqué. Je vous montre comment faire et je vous explique ensuite. Vous avez la possibilité dans DataGrip de récupérer des scripts SQL, ce sont des fichiers avec une extension .sql à la fin, qui comportent du code SQL que vous pouvez exécuter dans DataGrip. Ça vous évite des fois d'avoir à le retaper. En l'occurrence, ce document est fourni en pièce jointe de la formation, donc vous pouvez le télécharger et ensuite l'ouvrir, comme je vous montre de suite. On va pouvoir ouvrir ce fichier récursivité et ensuite l'exécuter directement. Pour l'exécuter, vous sélectionnez le script, vous faites contrôle entrée et ça vous affiche désormais la liste de tous les ruminants. Vous voyez qu'on n'a pas seulement les bovins et les petits ruminants, mais on a aussi les agneaux, les brebis, les chevraux, les ovins. Cette instruction SQL est relativement complexe et sort du cadre de cette formation. Je vous l'ai mise parce que c'est important de savoir que cela est possible. Je vous ai également fourni un lien qui vous permettra d'en savoir plus si vous avez besoin un jour de faire ce type de requête. Dans DataGrip, vous pouvez faire un contrôle clic pour visualiser le lien. Ça vous emmène sur la page de documentation de MySQL, dans laquelle vous avez des informations sur la manière dont on construit ce type d'instruction SQL. Simplement, le principe est le suivant. On crée une table temporaire qu'on appelle CTE, qui se compose de manière itérative. Lors de la première itération, cette ligne est renvoyée. Ça nous renvoie à un enregistrement constitué de trois colonnes, id, nom et parent, pour lequel le nom est égal à ruminant. Lors de la deuxième itération, cette instruction est exécutée. Elle valorise les résultats de l'itération précédente, puisqu'on utilise ici la table CTE. Elle nous permet d'avoir les animaux, en particulier les trois informations dont on dispose, leur id, leur nom et leur parent, mais uniquement ceux pour lesquels le parent porte l'id retourné par l'itération précédente. En l'occurrence, lors de la première itération, on a uniquement ruminant. Lors de la deuxième itération, on a bovin et petit ruminant. Lors de l'itération suivante, on a les enregistrements, dont le parent est soit bovin, soit petit ruminant. D'une itération à l'autre, le résultat se construit. Enfin, je valorise une dernière fois la table CTE, en ne récupérant que le nom de cette table et en le triant par ordre croissant. Vous voyez, c'est relativement complexe. Cependant, c'est typiquement le genre de service pour lequel les bases de données offrent des solutions efficaces et performantes.

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
    Maîtriser FlutterFlow - De l'Idée à l'Application
    Découvrir
    Cette formation en FlutterFlow est l'outil idéal pour tout développeur souhaitant créer des applications mobiles robustes et interactives sans coder de manière complexe. Grâce à des modules complets et structurés, vous apprendrez à utiliser FlutterFlow et Firebase, à sécuriser vos données, à concevoir des interfaces utilisateur élégantes et à intégrer des API telles qu'OpenIA. Rejoignez-nous pour transformer vos idées en applications innovantes et performantes.
    4h08 57 leçons
  • 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

é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