본문 바로가기
SQL

[질의구조] 모호한 속성 이름 설정

by 빅데이터1020 2020. 7. 18.
SMALL

SQL에서는 서로 다른 릴레이션에서 동일한 이름을 갖는 애트리뷰트가 사용될 수도 있습니다.

예를 들어서 EMPLOYEE에서도 (사원)이름, (사원)번호를 쓰고

DEPARTMENT에서도 (부서)이름, (부서)번호를 쓰는 경우 이름, 번호라는 명칭이 동일하게 사용될 수 있습니다.

 

이 때,

SQL에서 "릴레이션_이름.애트리뷰트_이름" 형태를 사용해서 모호함을 방지합니다.

 

SELECT   EMPLOYEE.NAME, ADDRESS
FROM    EMPLOYEE, DEPARTMENT
WHERE  DEPARTMENT.NAME = "Research" AND DEPARTMENT.NUMBER = EMPLOYEE.NUMBER;

 

또는 축약형으로도 작성 가능합니다.

 

SELECT   EMPLOYEE.NAME, ADDRESS
FROM   EMPLOYEE E, DEPARTMENT D
WHERE D.NAME = "Research" AND D.NUMBER = E.NUMBER;

 

 

[Q. 1] 종업원에 대해, 종업원의 성과 이름, 그리고 직속 감독자의 성과 이름은?

SELECT   E.FNAME, E.LNAME, S.FNAME, S.LNAME
FROM    EMPLOYEE E, EMPLOYEE S
WHERE   E.SUPERSSN = S.SSN;

*하나의 테이블 안에서 조인이 이루어졌기 때문에 Self-Join이 발생함

 

LIST