相関名 は、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