Jointure interne

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
Dans cette vidéo, on va s'intéresser aux jointures internes. Je vous explique de quoi il s'agit, à quoi ça sert. Pour ce faire, on va travailler sur la base de données contenant les médicaments vétérinaires, donc actualisées de 2021. Dans cette base de données, qui comporte 8 tables, on a une table MEDOC qui contient un certain nombre de médicaments. Pour chaque médicament, on a des informations comme le nom, le titulaire de l'AMM, etc. On a plein d'informations. Mais par contre, on n'a pas l'information sur la présentation du médicament. Est-ce que c'est du comprimé ? Est-ce que c'est des flacons de médicaments de telle ou telle contenance ? Ce n'est pas renseigné dans cette table-là. On va le trouver dans la table PRÉSENTATION. Et là, on a une liste de nombreuses présentations de médicaments. La question se pose, comment va-t-on faire la correspondance entre le médicament et la présentation qui lui correspond ? Eh bien, par cette colonne ici, MEDOC ID. Revenons sur la table MÉDICAMENTS. Vous avez probablement remarqué que, jusqu'ici, toutes les tables contenaient une première colonne qui s'appelle ID. C'est volontaire, cette colonne contient un numéro dans cette base de données, des fois c'est autre chose qu'un numéro, qui identifie chaque enregistrement de manière unique. C'est-à-dire que dans cette table, il n'est pas possible que deux médicaments portent le même ID. Ce numéro nous sert pour faire référence aux médicaments lorsque l'on se trouve dans une autre table. Ici, dans la table PRÉSENTATION, j'ai une colonne MEDOC ID qui contient l'ID du médicament associé à la présentation. On peut représenter ça de manière un peu plus visuelle. Si, par exemple, je clique droit sur la base de données et qu'ensuite je vais dans DIGRAMS, j'ai une visualisation qui apparaît avec toutes les tables de ma base de données. Je ne vais conserver que celles qui m'intéressent ici. Je clique sur la table puis sur le bouton SUPPRIMER pour ne conserver que les deux qui m'intéressent. On a la table des médicaments et la table des présentations. Un médicament peut exister sous différentes présentations. La correspondance se fait sur l'association MEDOC ID où ID est l'ID du MEDOC, MEDOC ID, le champ de la table PRÉSENTATION qui contient l'ID du médicament. Techniquement, l'ID de la table MEDOC s'appelle une clé primaire. C'est d'ailleurs pour ça que vous avez un petit symbole en forme de clé ici. De la même manière, on a un ID dans la table PRÉSENTATION qui identifie chaque présentation de manière unique. Dans ce contexte-là, l'ID de la table PRÉSENTATION est aussi une clé primaire. Ce qu'on voit apparaître ici, MEDOC ID, c'est une référence à la clé primaire de la table MEDOC. On appelle ça dans ce contexte-là une clé étrangère. Vous voyez que la clé est bleue dans ce diagramme. C'est assez facile de repérer les clés primaires et les clés étrangères. Ce sont des notions importantes à assimiler parce qu'elles reviennent en permanence lorsqu'on s'intéresse aux bases de données. Maintenant, la question se pose. Comment est-ce que je vais pouvoir, dans une requête, récupérer des informations sur un médicament et sur la présentation qui est associée à ce médicament ? La manière de procéder est la suivante. On utilise ce qu'on appelle une jointure. Dans le cadre de cette vidéo, on va s'intéresser à un type particulier de jointure, qui est celui qu'on utilise le plus souvent, la jointure interne. On va ouvrir une nouvelle console pour écrire notre script. Supposons que l'on veuille avoir la liste des noms des médicaments et des noms des présentations associés. On a bien dans la table Présentation une colonne Nom, qui est le nom de la présentation, et dans la table Medoc une colonne Nom, qui est le nom du médicament. On va commencer par faire une projection. Pour le moment, j'indique toutes les colonnes. On verra ensuite ce qu'on va choisir. From. On va prendre la table Medoc et on va lui mettre un alias. As M, pour faire plus simple. Et là, on va intégrer la syntaxe qu'on utilise pour faire une jointure. Join. Automatiquement, DataGrip nous propose une liste de jointures qu'il est possible de faire compte tenu de la structure de notre base de données. Nous, on veut faire une jointure avec la table Présentation et automatiquement, DataGrip nous suggère la syntaxe qu'il convient d'adopter. On utilise un alias pour la table Présentation. Et ici, il faut qu'on indique comment est-ce qu'on établit la correspondance entre les enregistrements de la table Medoc et les enregistrements de la table Présentation. On indique ça de la manière suivante. On M.ID, c'est-à-dire l'ID du médicament présent dans la table Medoc qu'on a associé à l'alias M, est égal à P.MedocID. Si j'exécute cette requête, je vais avoir toutes les colonnes des deux tables réunies. Ça va faire beaucoup de choses. Faisons-le. Je vois ici que j'ai toutes les colonnes de la table Medoc et derrière, je vais avoir toutes les colonnes de la table Présentation. Ce n'est pas forcément intéressant de tout projeter, surtout quand on a beaucoup d'enregistrements, ça finit par faire des requêtes assez lourdes. Ici, ce que je voulais, c'était le nom du médicament. On va utiliser l'alias de table. Pourquoi ? Parce qu'en fait, si je mets Nom ici, DataGrip ne saura pas s'il s'agit du nom de la présentation ou du nom du médicament puisque dans les deux tables, le champ porte le même nom. Ici, j'ai une colonne Nom. Ici, j'ai une colonne Nom. Il faut être explicite. C'est pour ça qu'on utilise des aliases de table, comme on l'a fait précédemment pour les colonnes. On va indiquer d'abord le nom de l'alias, suivi d'un point, et ensuite le nom de la colonne de cette table que l'on veut projeter. C'est le nom. On peut utiliser, si on le souhaite, un alias de colonne ici, donc AsMedicament. On utilise de la même manière l'alias de la table Présentation, P.Nom, AsPrésentation. Et si j'exécute cette requête-là, je n'aurai plus que deux colonnes, une colonne avec le nom du médicament, une colonne avec le nom de la présentation. Alors, on peut aller plus loin. Supposons que je veuille récupérer les médicaments qui sont commercialisés dans des présentations en flacons de 100 ml. Je vais pouvoir faire une restriction. Par exemple, là, j'ai une boîte d'un flacon de 100 ml pour ne conserver que les présentations dont le nom contient 100 ml. Je rajoute une restriction where P.NomLike100ml. J'indique un pourcentage au début et à la fin pour dire que je souhaite que la chaîne de caractère 100 ml soit contenue dans le nom. C'est-à-dire que ça commence par, que ça se termine par ou que ce soit au milieu, n'importe où. Dès l'instant qu'il y a l'expression 100 ml dans le nom de la présentation, je veux conserver l'enregistrement. J'exécute cette requête et je vois que j'ai ici un certain nombre d'enregistrements et ils ont tous en commun d'avoir l'expression 100 ml dans le nom de leur présentation. Je peux aller encore plus loin si je le souhaite. Par exemple, pour ne conserver que des médicaments dont le nom commence par B. et M.NomLikeB par exemple. Ici, je mets le pourcentage après le B pour dire que je souhaite conserver les enregistrements pour lesquels le nom du médicament commence par un B. Et ici, j'ai la liste de tous les médicaments dont les noms commencent par un B et qui sont présentés en flacons de 100 ml. Seulement, je vois qu'en fait, j'ai des doublons. Pourquoi ? Parce qu'il y a des présentations en boîte de 1 flacon, boîte de 6 flacons, boîte de 10 flacons. J'aimerais n'avoir finalement que le nom du médicament et ne l'avoir qu'en un seul exemplaire. Comment est-ce que je vais faire ? Je vais enlever ici le nom de la présentation et je vais rajouter Distinct ici. A ce moment-là, j'aurai la liste de tous les médicaments et à ce moment-là, j'aurai la liste des noms des médicaments. Chaque médicament dans la liste apparaît une et une seule fois, sachant que tous ces médicaments ont en commun d'avoir un nom qui commence par un B et d'être commercialisés sous forme d'une présentation de flacons de 100 ml. Cela a été possible notamment parce qu'on a utilisé ici une jointure interne pour réunir dans un même résultat, dans un même jeu d'enregistrement, des informations provenant de deux tables différentes reliées par une association clé primaire-clé étrangère. C'est un peu complexe, donc on va faire des exercices maintenant. A tout de suite.

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