본문 바로가기

컴퓨터 지식/Database

데이터베이스 SQL 예제 2

데이터베이스 SQL 예제 두번째 문제입니다.


'SEOUL'에서 근무하는 사원의 이름과 부서번호를 출력하시오.


이 문제에서 원하는 것은

사원의 이름과 부서번호 입니다.

SELECT name, deptno 가 되겠죠.


그리고 어떤 테이블에서 가져올 것인가의 문제인데,

사원의 이름과 부서번호는 employee 테이블에 있다고 가정하겠습니다.

그럼 FROM employee 가 되겠죠.


그런데 한가지 조건이 있습니다. 

SEOUL 지역에서 근무하는 사원만 뽑아야 합니다.

SEOUL 지역에 근무하는지는 어떻게 알 수 있을까요?

그냥 알 수는 없고, 테이블을 봐야 알 수 있습니다.

여기서는 편의상 dept라는 테이블에 있다고 가정하겠습니다.


조건문 WHERE에서 SEOUL 지역에 근무하는 부서번호를 모두 가져와야 하므로,

SELECT deptno

FROM dept

WHERE loc='SEOUL';

로 하면 서울지역에 근무하는 부서번호를 모두 가져올 수 있습니다.

여기서 부서번호를 가져온 이유는 부서번호는 employee 테이블과

 dept 라는 테이블에 공통적으로 부서번호라는 애트리뷰트(속성)이 있기 때문입니다.


이것을 상위 WHERE 조건문과 합치게 되면

WHERE deptno = (SELECT deptno FROM dept WHERE loc='SEOUL');

이 됩니다.


이제 위 세 문장을 종합해보면,


SELECT name, deptno

FROM employee

WHERE deptno = (SELECT deptno FROM dept WHERE loc='SEOUL');


이 됩니다.