DNAME이 ‘총무팀’인 부서에서 근무하는 직원아이디(EID), 직원이… | [경찰간부후보생 데이터베이스론] 24년 1회차 기출문제 상세 페이지
1[경찰간부후보생 데이터베이스론] 24년 1회차
DNAME이 ‘총무팀’인 부서에서 근무하는 직원아이디(EID), 직원이름(ENAME), 부서이름(DNAME)을 검색하기 위한 다음 SQL에서 빈칸 ㉠, ㉡에 적절한 것은? (단, 스키마에서 밑줄 친 속성은 기본키이고 EMPLOYEE의 DNO는 DEPARTMENT의 DID를 참조하기 위한 외래키이다)<스키마>EMPLOYEE(EID, ENAME, MANAGER, DNO)<SQL>
DEPARTMENT(DID, DNAME, ADDRESS)SELECT E.EID AS EMPID, E.ENAME AS EMPNAME,
D.DNAME AS DEPTNAME
FROM EMPLOYEE E, DEPARTMENT D
WHERE ( ㉠ ) = ‘총무팀’ AND ( ㉡ );
1
㉠: D.DNAME, ㉡: E.EID = D.DID
2
㉠: D.DID, ㉡: E.DNO = D.DNAME
3
㉠: D.DNAME, ㉡: E.DNO = D.DID
4
㉠: D.DID, ㉡: E.DNO = D.DID
해설
빈칸에는 ㉠ D.DNAME, ㉡ E.DNO = D.DID가 들어간다.
부서이름 비교는 부서 테이블의 DNAME으로 하고, 조인 조건은 외래키 DNO와 참조 대상 DID를 같게 놓는다.
- D.DNAME, E.EID = D.DID: 직원아이디와 부서아이디는 참조 관계가 없다.
- D.DID, E.DNO = D.DNAME: 부서아이디를 부서이름과 비교하고, 외래키도 이름과 비교한다.
- D.DID, E.DNO = D.DID: 조인 조건은 맞지만 부서아이디를 ‘총무팀’과 비교한다.
오류나 개정된 내용이 보이면 알려주세요