Comprendre les jointures dans Access Par Maxence HUBICHE Date de publication :

Comprendre les jointures dans Access Par Maxence HUBICHE Date de publication : 28 mars 2004 De nombreuses questions ayant été posées sur le forum à propos des jointures (jointure équivalente, jointure externe, jointure interne, jointure gauche…) et de leur bon usage, il m'a paru bon de faire un petit rappel, ou un petit apprentissage, du fonctionnement interne des requêtes. Pour avoir une claire compréhension de l'incidence du type de jointure sur une requête, nous allons faire une série d'exercices. Il s'agira de requêtes, simples. À chaque fois, des questions seront posées : « Quel est le résultat attendu ? » ; « Quel est le résultat obtenu ? » et « Que pouvons-nous en déduire ? » Ce cours est téléchargeable ici, dans un fichier au format pdf, zippé. Comprendre les jointures dans Access par Maxence HUBICHE I - Données de base....................................................................................................................................................3 II - Rappels fondamentaux.......................................................................................................................................... 3 II-A - Les relations..................................................................................................................................................3 II-B - L'intégrité référentielle...................................................................................................................................3 II-C - Les jointures..................................................................................................................................................4 III - Exercices...............................................................................................................................................................4 III-A - Cas d'une requête monotable......................................................................................................................4 III-B - Cas d'une requête multitable.......................................................................................................................5 III-C - Cas d'une requête sans relation..................................................................................................................6 III-D - Cas d'une requête avec regroupement....................................................................................................... 7 III-E - Les types de jointures..................................................................................................................................9 III-F - Cas d'une requête avec jointure externe...................................................................................................11 III-G - Cas d'une requête de non-correspondance..............................................................................................12 IV - En conclusion..................................................................................................................................................... 13 V - Remarque............................................................................................................................................................ 14 VI - Autotest...............................................................................................................................................................14 - 2 - Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Maxence HUBICHE. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. http://mhubiche.developpez.com/Access/tutoJointures/ Comprendre les jointures dans Access par Maxence HUBICHE I - Données de base Afin de faciliter l'apprentissage de chacun, la base servant de référence dans ces exercices est la base fournie par défaut par Microsoft® lors de l'installation d'ACCESS, à savoir Comptoir.mdb. II - Rappels fondamentaux II-A - Les relations ACCESS est un logiciel qui fait partie de la famille des SGBDR, c'est-à-dire des systèmes de gestion de bases de données relationnelles. La notion de relation est donc essentielle. Bien qu'il existe plusieurs types de relations, ACCESS ne gère que les relations de un à un, et les relations de un à plusieurs. Pour créer une relation de un à un, il faut impérativement lier des champs ayant leur propriété "indexé" à "oui-sans doublon". Pour créer une relation de un à plusieurs, il suffit de lier les champs entre eux. D'habitude, la relation se fait d'une clé primaire vers une clé étrangère. La clé primaire est le champ de la table qui sert d'identifiant à un enregistrement. Il s'agit d'un champ indexé sans doublon. La clé étrangère est le champ de la table qui servira à matérialiser la relation avec la clé primaire. Il doit être de même taille et de même type de données que la clé primaire à laquelle il est lié. NB : Il est possible de créer une clé primaire multichamp. Cependant, il n'est pas efficace de l'utiliser dans le cadre d'une relation. Une clé primaire multichamp sert surtout de règle de gestion pour les enregistrements. Elle empêche d'avoir deux enregistrements ayant les mêmes valeurs dans les champs de la clé primaire. On peut obtenir le même résultat avec un index multichamp, sans qu'il s'agisse d'une clé primaire. II-B - L'intégrité référentielle Il convient, lors de la création de la relation, d'appliquer l'intégrité référentielle. L'intégrité référentielle est un mécanisme de vérification qui s'assure que chaque clé étrangère est en correspondance avec sa clé primaire. Non seulement il vérifie l'intégrité des données écrites dans la clé étrangère, mais encore, il maintient cette intégrité en cas de modification ou de suppression de la clé primaire. En conséquence, lorsque l'intégrité référentielle est appliquée sur une relation, on ne devrait pas trouver, dans la clé étrangère, de données autres que celles de la clé primaire. Dès lors, bien que toutes les données figurant dans la table contenant la clé étrangère soient en relation avec les données de la table - 3 - Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Maxence HUBICHE. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. http://mhubiche.developpez.com/Access/tutoJointures/ Comprendre les jointures dans Access par Maxence HUBICHE contenant la clé primaire, l'inverse n'est pas exact. II-C - Les jointures Sous ACCESS, comme d'ailleurs dans la plupart des SGBDR, il y a plusieurs types de jointures. Le type de jointure par défaut est la jointure équivalente, qu'on qualifie également de jointure interne. Il existe cependant deux autres types de jointure, la jointure gauche, et la jointure droite, qu'on qualifie également de jointures externes. Examinons ensemble quelles en sont les influences à travers une série de requêtes simples. III - Exercices III-A - Cas d'une requête monotable Créer une requête basée sur la table Clients. Afficher le champ [Société]. En SQL on aurait : SELECT Société FROM Clients; Quel est le résultat attendu ? Aucun traitement particulier n'est effectué sur cette requête. Il devrait donc s'agir de l'affichage brut de la liste des champs [société] de la table des clients. Le nombre de lignes du résultat de la requête devrait donc correspondre au nombre de lignes dans la table. Quel est le résultat obtenu ? - 4 - Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Maxence HUBICHE. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. http://mhubiche.developpez.com/Access/tutoJointures/ Comprendre les jointures dans Access par Maxence HUBICHE Nous obtenons ici quatre-vingt-onze lignes. Que pouvons-nous en déduire ? Qu'il y a 91 clients. Pour s'en assurer il suffit de regarder le contenu de la table Clients. III-B - Cas d'une requête multitable Dans la requête précédente ajoutez la table Commandes. Nous allons maintenant examiner ce qui se passe lorsqu'on met dans une requête des tables qui ne servent à rien pour obtenir le résultat attendu. Notez au passage la description automatique de la relation existante entre la table des clients et celle des commandes. ACCESS reprend ici l'ensemble des informations définies préalablement dans la fenêtre des relations. Il s'agit d'une relation un à plusieurs, telle qu'un client peut avoir plusieurs commandes, chaque commande n'ayant qu'un seul client. Quel est le résultat attendu ? En SQL on aurait : SELECT Société FROM Clients INNER JOIN Commandes ON Clients.[Code Client]=Commandes.[Code Client]; Puisqu'on continue à n'afficher que le champ [société], on s'attend logiquement à obtenir la liste des sociétés ayant des commandes, soit nos 91 lignes trouvées précédemment. Quel est le résultat obtenu ? - 5 - Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Maxence HUBICHE. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. http://mhubiche.developpez.com/Access/tutoJointures/ Comprendre les jointures dans Access par Maxence HUBICHE Nous obtenons maintenant 830 lignes. Que pouvons-nous en déduire ? La réponse qui nous vient à l'esprit immédiatement est : les 91 clients ont effectué 830 commandes. Cependant, cette affirmation n'est pas obligatoirement exacte. Pourquoi ? Parce que la relation entre les deux tables est qualifiée de jointure équivalente. C'est-à-dire que cette requête travaille uniquement sur l'ensemble des associations possibles entre le champ [code client] de la table des clients et le champ [code client] de la table de Commandes. Mais se pourrait-il qu'il y ait des commandes n'ayant pas de clients référencés dans la base ? N'oublions pas la présence de l'intégrité référentielle dans cette relation. Comme nous l'avons vu précédemment, elle permet de s'assurer que pour une clé étrangère il y a toujours une clé primaire qui lui correspond. On peut donc dire qu'il y a effectivement 830 commandes, car nous sommes certains qu'il n'y a que des commandes liées à des clients. En regardant attentivement le résultat uploads/S4/ les-jointures-access 1 .pdf

  • 25
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Jul 25, 2022
  • Catégorie Law / Droit
  • Langue French
  • Taille du fichier 0.5183MB