Retour à la liste des articles Articles
10 minutes de lecture

Comment pratiquer les JOINs SQL

Il n'y a pas de meilleure façon d'apprendre les jointures SQL que par la pratique. Cependant, il y aura probablement des obstacles en cours de route. Je vais aborder certains de ces obstacles et donner des idées sur la façon de les surmonter. Si cet article ne vous transformera pas en expert du site Les jointures en SQL, il vous montrera comment le devenir. Alors, c'est parti !

Les défis de la pratique Les jointures en SQL

Il est difficile de répondre à la question "Comment maîtriser Les jointures en SQL?". En revanche, il est facile de répondre à la question "Comment s'entraîner ? Les jointures en SQL?" C'est le chemin à suivre pour maîtriser Les jointures en SQL.

Si vous lisez cet article, vous avez probablement déjà commencé à vous familiariser avec les bases de données et à comprendre ce qu'elles sont. De plus, vous comprenez probablement certains concepts de base comme les tables, les clés primaires et étrangères, l'écriture d'instructions simples à l'adresse SELECT, etc.

Vous êtes donc prêt à commencer à écrire des requêtes plus complexes, mais vous êtes probablement confronté à certains défis. Les défis que j'aborde dans cet article sont ceux que j'ai rencontrés lorsque j'ai appris quelque chose de nouveau. Nous allons donc énumérer les défis les plus courants.

Utiliser les bonnes données

Ce n'est pas un scoop de dire que les bases de données sont axées sur les données. Tout commence par des données du monde réel qui sont stockées sous forme numérique dans une base de données. Ensuite, ces informations doivent être extraites de la base de données et transformées en rapports concrets. Je ne peux pas imaginer créer des rapports significatifs à partir de bases de données sans utiliser les JOIN.

Peut-être travaillez-vous dans une institution financière, peut-être analysez-vous les résultats d'élections, ou peut-être vous demandez-vous comment les utilisateurs de votre jeu mobile l'utilisent réellement. Il se peut également que vous vous prépariez à un entretien. Quoi qu'il en soit, vous devrez savoir comment traiter des milliers ou des millions d'enregistrements dans de nombreuses tables différentes.

Votre objectif sera d'écrire des requêtes qui renvoient exactement ce que vous voulez. Pour ce faire, vous devrez savoir comment écrire le code SQL et avoir au moins une idée du résultat final.

Lorsque vous vous entraînez sur le site Les jointures en SQL, il peut être difficile de trouver un ensemble de données approprié. Les entreprises ne partageront probablement pas leurs données pour que vous puissiez vous entraîner, mais s'entraîner avec des ensembles de données inadéquats n'est pas une bonne option. Si la requête ne renvoie rien, vous ne pouvez pas savoir si vous avez mal écrit la requête ou si l'ensemble de données ne contient rien qui corresponde aux critères.

L'ensemble de données idéal vous permettra d'obtenir des résultats pour les requêtes les plus courantes, mais aussi pour certains cas particuliers intéressants. Techniquement, vous pouvez créer un ensemble de données vous-même, mais cela pose des problèmes importants :

  1. Vous devrez savoir comment le créer - s'occuper des données, des clés, des insertions, etc.
  2. Vous devrez savoir quels cas vous voulez couvrir avec les données. C'est difficile car c'est vous qui vous entraînez pour apprendre cela et non l'inverse.
  3. L'ensemble de données devra être suffisamment grand - il ne peut s'agir de quelques lignes dans chaque table. Il faut du temps pour rassembler des informations du monde réel (par exemple, des listes de villes et de pays) ou pour produire vos propres données (employés imaginaires, rôles, etc.).

Trouver les bons exemples

Vous avez besoin non seulement d'un bon ensemble de données, mais aussi d'exemples qui vous aident à apprendre de manière efficace et effective. Vous pouvez facilement trouver des milliers d'exemples sur l'internet, mais certains sont trop simples et d'autres dépassent ce que vous pouvez comprendre à ce moment-là. Il est préférable d'aller pas à pas des exemples simples aux exemples complexes.

Ces exemples doivent également être facilement compréhensibles et proches des problèmes et des mises en œuvre que vous rencontrerez dans votre/vos métier(s). Les tables doivent être celles utilisées dans presque toutes les bases de données (par exemple, les utilisateurs, les clients, les étudiants, les voitures, etc.) ). Cela rendra les exemples plus compréhensibles et applicables aux situations du monde réel.

Équilibrer théorie et application

La plupart des personnes qui apprennent à écrire sur Les jointures en SQL ne sont pas très intéressées par la théorie qui se cache derrière. S'il est toujours bon de comprendre la théorie, la situation ne nous permet pas toujours d'y consacrer autant de temps. Cela s'applique à presque tout dans la vie, et la clé est de trouver un équilibre.

Vous devez apprendre juste assez de théorie pour comprendre ce que vous faites lorsque vous rédigez des requêtes. Cela ne signifie pas que vous ne devez pas apprendre autant que possible, mais vous devez le faire par étapes. Vous devez savoir ce que l'on attend de vous, quel JOIN utiliser et pourquoi.

Pratiquez Les jointures en SQL en ligne

Peu importe ce que vous apprenez, vous devez commencer par les bases et améliorer vos connaissances au fil du temps - ni trop vite, ni trop lentement. Alors, quelle est la meilleure façon d'apprendre Les jointures en SQL?

Personnellement, j'adore l'histoire. C'est l'une de mes passions (outre les bases de données, bien sûr). Mon partenaire dit souvent que je suis une "fontaine" de faits historiques bizarres. Et je suis d'accord avec cela. La plupart de ces faits bizarres, je les trouve grâce à des vidéos. Il existe d'excellentes vidéos sur Internet. J'aurais aimé avoir ça quand j'étais à l'école.

Mais cette approche pose un problème pour l'apprentissage de Les jointures en SQL et de la plupart des autres sujets liés à l'informatique. Vous ne pouvez pas vous contenter de regarder une vidéo de quelqu'un d'autre en train de coder et espérer acquérir ces connaissances. Certes, vous apprendrez quelque chose, mais rien ne vaut l'écriture du code par vous-même.

Lorsque vous regardez des vidéos, vous considérez les choses comme acquises et vous n'apprenez pas par la pratique. Lorsque vous commencez à écrire le code, vous réalisez que vous apprenez vraiment à utiliser Les jointures en SQL. Je ne dis pas que les cours vidéo ne constituent pas un élément important du processus d'apprentissage. Je pense simplement que vous ne pouvez pas maîtriser les JOIN SQL en regardant uniquement des vidéos.

Par conséquent, je vous suggère fortement d'apprendre Les jointures en SQL en écrivant du code. L'un des moyens d'y parvenir est de s'exercer en ligne.

Je vais vous faire part d'une de mes expériences personnelles. J'ai toujours été ravi d'installer un nouvel environnement de développement. Après chaque installation, je lançais le programme et, bien sûr, je voyais un écran vide. Bon, c'est normal. Donc, l'étape suivante consistait généralement à chercher des exemples en ligne sur Google, mais ce n'était pas idéal.

Bien que vous puissiez être un fan des livres, des vidéos ou même de la recherche sur Internet, je pense qu'il n'y a pas de meilleure façon de comprendre les choses que de suivre un cours sur ce qui vous pose problème. Vous obtiendrez des exemples qui sont correctement préparés et décrits. De plus, ces exemples seront ordonnés de manière à ce que vous puissiez progresser lentement vers des problèmes plus compliqués.

Types de jointures SQL et exemples

SQL prend en charge différents types de JOIN afin d'obtenir le résultat souhaité. Voici les JOIN les plus connus.

INNER JOIN

INNER JOIN est utilisé pour joindre deux tables sur la base d'une condition. Les tables sont jointes en utilisant une condition écrite après ON. Les attributs de clé primaire et étrangère sont généralement utilisés ici, mais des variantes sont possibles. Seules les lignes des tables incluses dans INNER JOIN ayant une paire, définie par la condition, seront retournées.

SELECT *
FROM student
INNER JOIN room ON student.room_id = room.id;

LEFT JOIN

LEFT JOIN fait la même chose que INNER JOIN sauf qu'elle prend deux tables, la table "gauche" et la table "droite". La condition est écrite après ON. Elle retourne toutes les lignes de la table "gauche", même celles qui n'ont pas de paire dans la table "droite".

SELECT *
FROM student
LEFT JOIN room ON student.room_id = room.id;

JOINT DROIT

RIGHT JOIN fait la même chose que LEFT JOIN, sauf qu'elle prend toutes les lignes de la table "droite" et les joint à la table "gauche". Étant donné que LEFT JOIN et RIGHT JOIN sont similaires, et que vous pouvez simuler RIGHT JOIN avec LEFT JOIN (il suffit de changer l'ordre des tables dans la jointure), RIGHT JOIN est rarement utilisé. Une autre raison à cela est que nous lisons de haut en bas et de gauche à droite. Par conséquent, la lisibilité de la requête utilisant LEFT JOIN est plus intuitive.

SELECT *
FROM student
RIGHT JOIN room ON student.room_id = room.id;

JOINs multiples

Lesjointures multiples vous permettent de joindre plus de deux tables. Il est assez courant de joindre plus de deux tables. Vous utiliserez les mêmes JOIN que nous avons mentionnés jusqu'à présent, ainsi que certaines règles qui leur sont appliquées. Faites attention à ce que chaque JOIN ait ses propres conditions écrites après ON. Afin d'améliorer la lisibilité et de simplifier les choses, placez chaque JOIN sur une nouvelle ligne.

SELECT *
FROM student
INNER JOIN room ON student.room_id = room.id
INNER JOIN equipment ON equipment.room_id = room.id;

FULL JOIN

FULL JOIN renvoie toutes les lignes des tables "gauche" et "droite", même si elles ont une paire. Certains SGBD supportent FULL JOIN, alors que d'autres ne le supportent pas. Vous pouvez facilement simuler FULL JOIN en utilisant la combinaison de LEFT JOIN et RIGHT JOIN comme indiqué ci-dessous.

SELECT movie.*, director.*
FROM movie
LEFT JOIN director ON movie.director_id = director.id
UNION
SELECT movie.*, director.*
FROM movie
RIGHT JOIN director ON movie.director_id = director.id;

Self JOINs

Lesauto-joints ne sont pas un type de jointure mais plutôt un moyen d'utiliser une table plus d'une fois dans un JOIN. Cela signifie que vous allez joindre la table avec elle-même. Ainsi, si vous avez deux tables, l'une sera à gauche et l'autre à droite de l'adresse JOIN. Voici quelques exemples de situations dans lesquelles vous pourriez avoir besoin de faire cela : "lister tous les employés et tous les autres employés plus âgés que cet employé" et "trouver s'il y a des directeurs dont le salaire est inférieur à celui de n'importe quel employé". Pour faire simple, vous avez besoin de données provenant de la même table deux fois, et vous devez joindre/comparer ces deux ensembles de données en fonction d'une condition.

JOINs non équitables

Jusqu'à présent, nous avons utilisé uniquement des équations dans les conditions de JOIN (après le mot-clé ON). Toutefois, ce n'est pas obligatoire. Vous pouvez faire ce que vous voulez dans une condition, mais sachez que cela aura un impact sur le résultat (et, bien sûr, assurez-vous de savoir ce que vous faites).

SELECT *
FROM student s1
INNER JOIN student s2 on s1.id < s2.id
ORDER BY s1.id, s2.id;

Remarquez que la requête ci-dessus est un exemple de self JOIN (nous avons utilisé la table student deux fois), ainsi que d'un JOIN non équivoque (utilisation de "<" au lieu de "=" dans la condition s1.id < s2.id). La requête elle-même renvoie tous les étudiants combinés avec d'autres étudiants (sauf eux). Chaque combinaison est retournée exactement une fois.

Vous voulez en savoir plus sur Les jointures en SQL? Regardez un épisode de notre série Nous apprenons le SQL sur Youtube. Vérifiez si vous savez déjà tout sur les différents types de JOINs.

Conclusion

Il n'y a pas de réponse facile à la question "Comment maîtriser Les jointures en SQL?". La seule façon d'y parvenir est d'essayer, d'échouer et finalement de réussir. Cela prendra plus ou moins de temps en fonction de vos connaissances actuelles et de votre façon de vous entraîner. Cela nous amène à nouveau à la question "Comment pratiquer ? Les jointures en SQL?" En fin de compte, c'est la question à laquelle nous devons répondre.

Quelle que soit la voie que vous choisissez, assurez-vous de tirer le meilleur parti de votre temps et de votre argent. Si l'argent peut être gagné, personne ne vous rendra votre temps. Je vous conseille de vous entraîner autant que possible avec des exemples.

Si vous souhaitez regarder des vidéos dans le cadre de votre processus d'apprentissage, je vous recommande celle-ci. Je pense que vous l'apprécierez, surtout si vous êtes un fan de Les jointures en SQL et de science-fiction.