Initiation à SQL

Noms de corrélation

Un nom de corrélation est un identificateur servant à distinguer différentes utilisations d'un même objet. Il peut être défini dans la clause FROM d'une requête et dans la première clause d'une instruction UPDATE ou DELETE. Il peut être associé à une table, à une vue ou à une expression de table imbriquée, mais uniquement dans le contexte dans lequel il a été défini.

Par exemple, la clause FROM STAFF S, ORG O définit que S et O sont les noms de corrélation de STAFF et ORG.

      SELECT NAME, DEPTNAME
         FROM STAFF S, ORG O
         WHERE O.MANAGER = S.ID

Une fois défini, seul le nom de corrélation peut être utilisé pour qualifier l'objet. Par exemple, si, dans l'exemple ci-dessus, nous avions déclaré ORG.MANAGER=STAFF.ID, l'instruction aurait échoué.

Il est aussi possible d'utiliser un nom de corrélation comme abréviation, pour se référer à un objet de base de données. Le fait de taper S uniquement est plus rapide et plus facile que d'entrer STAFF.

L'utilisation de noms de corrélation permet de dupliquer un objet. Ceci s'avère utile pour comparer les entrées d'une table avec la table elle-même. Dans l'exemple ci-dessous, la table EMPLOYEE est comparée à l'une de ses instances, pour rechercher les directeurs de tous les employés. Il affiche les noms des employés autres que des concepteurs, le nom de leur directeur et le numéro de leur service.

     SELECT E2.FIRSTNME, E2.LASTNAME, E2.JOB, E1.FIRSTNME AS MGR_FIRSTNAME, 
                           E1.LASTNAME AS MGR_LASTNAME, E1.WORKDEPT
        FROM EMPLOYEE E1, EMPLOYEE E2
        WHERE E1.WORKDEPT = E2.WORKDEPT
          AND E1.JOB = 'MANAGER'
          AND E2.JOB <> 'MANAGER'
          AND E2.JOB <> 'DESIGNER'

Cette instruction donne le résultat suivant :

     FIRSTNME     LASTNAME   JOB      MGR_FIRSTNAME MGR_LASTNAME    WORKDEPT
     ------------ ---------- -------- ------------- --------------- --------
     DOLORES      QUINTANA        ANALYST  SALLY        KWAN            C01     
     HEATHER      NICHOLLS        ANALYST  SALLY        KWAN            C01     
     JAMES        JEFFERSON       CLERK    EVA          PULASKI         D21     
     SALVATORE    MARINO          CLERK    EVA          PULASKI         D21     
     DANIEL       SMITH           CLERK    EVA          PULASKI         D21     
     SYBIL        JOHNSON         CLERK    EVA          PULASKI         D21     
     MARIA        PEREZ           CLERK    EVA          PULASKI         D21     
     ETHEL        SCHNEIDER       OPERATOR EILEEN       HENDERSON       E11     
     JOHN         PARKER          OPERATOR EILEEN       HENDERSON       E11     
     PHILIP       SMITH           OPERATOR EILEEN       HENDERSON       E11     
     MAUDE        SETRIGHT        OPERATOR EILEEN       HENDERSON       E11     
     RAMLAL       MEHTA           FIELDREP THEODORE     SPENSER         E21     
     WING         LEE             FIELDREP THEODORE     SPENSER         E21     
     JASON        GOUNOT          FIELDREP THEODORE     SPENSER         E21     


[ Début de page | Page précédente | Page suivante | Table des matières | Index ]