Représentation des jointures dans le Concepteur de requêtes et de vues
Dans le cas de tables jointes, le Concepteur de requêtes et de vues représente la jointure graphiquement dans le volet Schéma et il utilise la syntaxe SQL dans le volet SQL.
Volet Schéma
Dans le volet Schéma, le Concepteur de requêtes et de vues affiche une ligne de jointure entre les colonnes de données impliquées. Il affiche une ligne de jointure par condition de jointure. Par exemple, l'illustration suivante montre une ligne de jointure entre deux tables jointes :
Si des tables ont plusieurs conditions de jointure, le Concepteur de requêtes et de vues affiche plusieurs lignes de jointure, comme l'illustre l'exemple suivant :
Si les colonnes de données jointes ne sont pas affichées (parce que, par exemple, le rectangle représentant la table ou l'objet table est réduit ou la jointure implique une expression), le Concepteur de requêtes et de vues place la ligne de jointure dans la barre de titre du rectangle représentant la table ou l'objet structuré en table.
La forme de l'icône au milieu de la ligne de jointure indique la façon dont les tables ou les objets structurés en table sont joints. Si la clause de jointure utilise un autre opérateur que le signe égal (=), il s'affiche dans l'icône de la ligne de jointure. Le tableau suivant fait la liste des icônes qui apparaissent dans la ligne de jointure.
Icône de la ligne de jointure |
Description |
---|---|
Jointure interne (créée avec l'opérateur « égal »). |
|
Jointure interne basée sur l'opérateur « plus grand que ». |
|
Jointure externe dans laquelle toutes les lignes de la table représentée à gauche seront incluses, même si elles n'ont pas de correspondance dans la table en relation. |
|
Jointure externe dans laquelle toutes les lignes de la table représentée à droite seront incluses, même si elles n'ont pas de correspondance dans la table en relation. |
|
Jointure externe entière dans laquelle toutes les lignes des deux tables seront incluses, même si elles n'ont pas de correspondance dans la table en relation.
Remarque
Certaines bases de données, et notamment Oracle, ne prennent pas en charge les jointures externes entières.
|
Les symboles présents aux extrémités de la ligne de jointure indiquent le type de jointure. Le tableau suivant fait la liste des types de jointures et des icônes affichées aux extrémités de la ligne de jointure.
Icône aux extrémités de la ligne de jointure |
Type de jointure |
---|---|
Jointure Un-à-un. |
|
Jointure Un-à-plusieurs. |
|
Le Concepteur de requêtes et de vues ne peut pas déterminer le type de jointure. Ce cas s'observe surtout lorsque vous avez créé une jointure manuellement. |
Volet SQL
Dans une instruction SQL, une jointure peut être exprimée de plusieurs façons différentes. La syntaxe exacte dépend de la base de données utilisée et de la façon dont la jointure a été définie.
Pour spécifier une jointure de tables, vous disposez de plusieurs options de syntaxe :
Qualificateur JOIN pour la clause FROM. Les mots clés INNER et OUTER spécifient le type de jointure. Il s'agit de la syntaxe standard du SQL ANSI 92.
Par exemple, si vous joignez les tables publishers et pub_info sur la base de la colonne pub_id de chaque table, vous obtenez une instruction SQL similaire à la suivante :
SELECT * FROM publishers INNER JOIN pub_info ON publishers.pub_id = pub_info.pub_id
En cas de jointure externe, le mot INNER est remplacé par les mots LEFT OUTER ou RIGHT OUTER.
Clause WHERE comparant des colonnes des deux tables. Une clause WHERE apparaît si la base de données ne prend pas en charge la syntaxe JOIN (ou si vous l'avez entrée vous-même). Si la jointure est créée dans la clause WHERE, les noms des deux tables apparaissent dans la clause FROM.
Par exemple, l'instruction suivante joint les tables publishers et pub_info.
SELECT * FROM publishers, pub_info WHERE publishers.pub_id = pub_info.pub_id