SQL 概説

相関名

相関名 は、1 つのオブジェクトを何度も使う場合に、 複数の使用を互いに区別するために使う識別子です。 相関名は、照会の FROM 文節の中で定義したり、 UPDATE または DELETE ステートメントの最初の文節の中で定義したりできます。 表、視点、またはネストした表式に関連付けることができますが、 それが定義されている文脈以外では使用できません。

たとえば、FROM STAFF S、ORG O という文節では、S および O がそれぞれ STAFF および ORG の相関名として確立されます。

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

相関名を定義したなら、 オブジェクトの修飾にはその相関名しか 使えません。 たとえば、上の例の場合、 ORG.MANAGER=STAFF.ID とすると、 ステートメントは失敗します。

また相関名は、データベース・オブジェクトを参照するための短縮名として使うこともできます。 STAFF と入力するよりは、S だけを入力するほうが簡単です。

相関名を使うなら、 1 つのオブジェクトの複製を作成できます。 これは、ある表の全体をそれ自体と比較する場合に便利です。 次の例では、 表 EMPLOYEE をそれ自体の別のインスタンスと比較することによって、 全従業員の上司 (MANAGER) を調べています。 設計者以外の従業員の名前、その上司の名前、 そして部署番号 (WORKDEPT) を表示します。

     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'

このステートメントの結果は、次のとおりです。

     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     


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]