Relations entre tableaux

Vous pouvez utiliser une seule instruction SELECT pour extraire des données de plusieurs tableaux de base de données. L'instruction établit une relation entre les tableaux et renvoie un jeu d'enregistrements unique contenant des données sélectionnées dans chaque tableau.

Par exemple, une base de données d'entreprise peut contenir un tableau avec des données personnelles relatives aux employés et un autre tableau avec des données relatives aux services de l'entreprise. Si vous souhaitez créer un annuaire des employés avec leur nom, numéro de téléphone et service, vous devez extraire ces informations dans les deux tableaux à la fois.

Pour ce faire, créez une relation en spécifiant l'ensemble des tableaux que vous souhaitez inclure et les liaisons existant entre les tableaux. Exemple :

SELECT FIRSTNAME, LASTNAME, PHONE, DEPTNAME
FROM EMPLOYEES, DEPARTMENTS
WHERE EMPLOYEES.DEPT_ID = DEPARTMENTS.DEPT_ID

La première ligne spécifie les colonnes à extraire. Les trois premières colonnes (FIRSTNAME, LASTNAME, PHONE) existent dans le tableau EMPLOYEES, tandis que la quatrième colonne (DEPTNAME) existe uniquement dans le tableau DEPARTMENTS.

La deuxième ligne spécifie les deux tableaux dans lesquels vous pouvez extraire des données, EMPLOYEES et DEPARTMENTS.

La dernière ligne spécifie les enregistrements à associer et à extraire dans les deux tableaux. Chaque tableau contient une colonne intitulée DEPT_ID. (Dans le tableau DEPARTMENTS, la colonne est la clé principale. Pour plus d'informations, consultez Définition des relations entre les tables. La clause WHERE compare la valeur de DEPT_ID dans un tableau avec celle de DEPT_ID dans l'autre tableau. Lorsqu'une correspondance est établie, tous les champs de l'enregistrement du tableau EMPLOYEES sont regroupés avec ceux de l'autre tableau DEPARTMENTS. Ensuite, les données combinées sont filtrées pour créer un nouvel enregistrement constitué d'une colonne FIRSTNAME, LASTNAME, PHONE et DEPTNAME. Pour finir, le nouvel enregistrement est ajouté au jeu.

Dans certains systèmes de bases de données, il est parfois préférable d'utiliser une syntaxe relationnelle légèrement différente. Par exemple, l'instruction SQL suivante utilise les mots-clés SQL INNER JOIN...ON pour obtenir les mêmes résultats que dans l'exemple précédent :

SELECT FIRSTNAME, LASTNAME, PHONE, DEPTNAME
FROM EMPLOYEES INNER JOIN DEPARTMENTS
ON EMPLOYEES.DEPT_ID = DEPARTMENTS.DEPT_ID

Consultez la documentation relative à votre système de base de données pour déterminer la syntaxe relationnelle à utiliser.