Blog Alphorm Logo de blog informatique spécialisé en technologie et solutions IT
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
En cours de lecture : Comprendre les requêtes SQL multi-tables
Agrandisseur de policeAa
Blog AlphormBlog Alphorm
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
Search
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
Suivez-nous
© Alphorm 2024 - Tous droits réservés
Bases de donnéesDéveloppement

Comprendre les requêtes SQL multi-tables

L'Équipe Alphorm Par L'Équipe Alphorm 20 novembre 2024
Partager
Partager

Comprendre comment lier plusieurs tables en SQL peut s’avérer complexe.

Des erreurs dans les jointures peuvent conduire à des données incorrectes et à des requêtes inefficaces.

Cet article vous guidera à travers l’écriture de requêtes SQL multi-tables, en expliquant les syntaxes clés pour des jointures claires et précises.

Table de matière
SQL Multi-Tables : Syntaxe Non NormaliséeSQL Multi-Tables : Syntaxe NormaliséeFAQConclusion

Formation Le langage SQL : Le Guide Complet

Appréhendez les fondamentaux du langage SQL pour savoir assimiler ses fonctions standards.

Découvrir cette formation

Dans cette section, vous apprendrez à écrire des requêtes multi-tables avec condition . Une jointure avec condition permet de lier des enregistrements spécifiques de plusieurs tables en définissant une condition qui les relie, généralement via une clé primaire dans une table et une clé étrangère dans une autre.

Requête SQL inner join sur tables

SQL Multi-Tables : Syntaxe Non Normalisée

L’une des façons classiques d’écrire une jointure conditionnelle en SQL est de l’utiliser directement dans la clause WHERE. Bien que cette méthode ne soit pas la plus recommandée dans les bases de données modernes (car elle peut mener à des ambiguïtés), elle reste une syntaxe simple et fonctionnelle.

				
					
 SELECT [DISTINCT ] { * , [nom_colonne1 [AS] alias1 [,...]}
FROM nom_table1 [AS] alias1, nom_table2 [AS] alias2
[ WHERE nom_table1.nom_colonne=nom_table2.nom_colonne];

				
			
  • DISTINCT(facultatif) :Supprime les doublons dans les résultats.
  • nom_table1, nom_table2 :Vous spécifiez deux tables (ou plus) dans la clause FROM.
  • alias1, alias2(facultatif) :Les alias sont utilisés pour simplifier la lecture et l’écriture de la requête.
  • nom_table1.nom_colonne = nom_table2.nom_colonne :Condition qui relie les deux tables, typiquement entre une clé étrangère et une clé primaire.

Lorsque vous écrivez une requête multi-tables avec condition, vous pouvez lier les tables entre elles à travers une clause WHERE. Cela permet de spécifier la relation entre deux colonnes. Si vous utilisez des alias, il est essentiel de bien comprendre qu’ils servent à réduire la longueur de votre code et à rendre votre requête plus lisible.

Infos :
Désavantage : Moins lisible et ne permet pas de spécifier facilement les types de jointures (comme LEFT JOIN, RIGHT JOIN, etc.).

Exemple : Tables clients, commandes et employés

Imaginons que vous ayez trois tables : clients , commandes et employés . Nous allons écrire une requête SQL qui relie ces trois tables pour afficher des informations spécifiques.

Diagramme SQL avec tables Clients, Commandes, Employés

Voici un exemple simple pour joindre les tables Clients, Employes et Commandes avec une syntaxe non normalisée :

				
					
 SELECT cl.SOCIETE, e.NOM, cmd.DATE_COMMANDE
FROM CLIENTS cl, EMPLOYES e, COMMANDES cmd
WHERE cmd.CODE_CLIENT = cl.CODE_CLIENT AND cmd.NO_EMPLOYE = e.NO_EMPLOYE;

				
			
  • Nous sélectionnons le nom de la société (SOCIETE), le nom de l’employé (NOM), et la date de la commande (DATE_COMMANDE).
  • Les jointures sont définies dans la clause WHERE.

Résultat attendu :

Tableau de résultats d'une requête SQL multi-tables

SQL Multi-Tables : Syntaxe Normalisée

Dans la syntaxe normalisée , on utilise explicitement les mots-clés de jointure (JOIN, LEFT JOIN, RIGHT JOIN, etc.), ce qui rend la requête plus claire et permet de définir explicitement les relations entre les tables.

				
					
 SELECT [DISTINCT ] { * , [nom_colonne1 [AS] alias1 [,...]}
FROM nom_table1 [AS] alias1 [ JOIN nom_table2 [AS] alias2
ON (nom_table1.nom_colonne= nom_table1.nom_colonne) ];

				
			
  • Exemple jointure avec condition :Normalisée

Voici la même requête, mais avec une syntaxe normalisée :

				
					
 SELECT cl.SOCIETE, e.NOM, cmd.DATE_COMMANDE
FROM COMMANDES cmd
INNER JOIN CLIENTS cl ON cmd.CODE_CLIENT = cl.CODE_CLIENT
INNER JOIN EMPLOYES e ON cmd.NO_EMPLOYE = e.NO_EMPLOYE;

				
			

Cette requête est plus explicite, grâce à l’utilisation de INNER JOIN, et montre clairement les relations entre les tables.

  • Résultat attendu :
Table SQL avec sociétés et dates de commande

Formez-vous gratuitement avec Alphorm !

Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.

Démarrer gratuitement
illustration processus de paiement en ligne avec étapes claires et convivialité

FAQ

Comment écrire une requête SQL multi-tables avec condition ?
Pour écrire une requête SQL multi-tables avec condition, utilisez la clause WHERE pour spécifier les relations entre les tables. Cette méthode implique de préciser les colonnes clés de chaque table, souvent une clé primaire et une clé étrangère. Bien que cette approche ne soit pas la plus moderne, elle reste simple et directe pour des connexions basiques entre tables.
Quels sont les avantages de la syntaxe normalisée en SQL ?
La syntaxe normalisée en SQL, utilisant des mots-clés de jointure explicites comme INNER JOIN, améliore la lisibilité des requêtes et permet de spécifier clairement les relations entre tables. Elle réduit le risque d’ambiguïté et facilite la maintenance et la compréhension du code, surtout dans des bases de données complexes.
Quand utiliser DISTINCT dans une requête SQL ?
DISTINCT est utilisé pour éliminer les doublons dans les résultats d’une requête SQL. Il est particulièrement utile lorsque vous souhaitez obtenir une liste unique de valeurs sans répétition. C’est une option facultative mais importante quand la précision et la clarté des données sont essentielles.
Quels sont les désavantages des jointures dans la clause WHERE ?
L’utilisation de jointures dans la clause WHERE peut rendre une requête moins lisible, surtout avec plusieurs tables, et ne permet pas de spécifier facilement les types de jointures comme LEFT JOIN ou RIGHT JOIN. Cela peut compliquer la compréhension des relations complexes entre tables.
Comment optimiser une requête SQL avec plusieurs tables ?
Pour optimiser une requête SQL avec plusieurs tables, utilisez des jointures explicites avec la syntaxe normalisée, et assurez-vous que les colonnes impliquées dans les conditions sont indexées. Évitez les doublons avec DISTINCT si nécessaire et simplifiez le code avec des alias pour améliorer la lisibilité et l’efficacité.

Conclusion

En maîtrisant les requêtes SQL multi-tables, vous pouvez gérer efficacement des bases de données complexes. Comment allez-vous appliquer ces techniques dans vos projets SQL futurs ?

ÉTIQUETÉ : Langage SQL
Facebook
Twitter
LinkedIn
Email
WhatsApp
Par L'Équipe Alphorm
Démocratiser la Connaissance Informatique pour Tous !
Suivre :
L'Équipe Alphorm, c'est la démocratisation de la connaissance informatique. Passionnés et dévoués, nous sommes là pour vous guider vers le succès en rendant la technologie accessible à tous. Rejoignez notre aventure d'apprentissage et de partage. Avec nous, le savoir IT devient une ressource inspirante et ouverte à tous dans un monde numérique en constante évolution.

Derniers Articles

  • Techniques pour gérer les fichiers texte en C#
  • Créer et lire un fichier CSV avec C#
  • JSON : Comprendre et Utiliser Efficacement
  • Créer une Base SQLite dans C#
  • Lecture des données SQLite simplifiée
Laisser un commentaire Laisser un commentaire

Laisser un commentaire Annuler la réponse

Vous devez vous connecter pour publier un commentaire.

Blog Alphorm
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
En cours de lecture : Comprendre les requêtes SQL multi-tables

© Alphorm - Tous droits réservés