작성
·
293
0
5분45초 영상입니다.
select
from hr.emp a
join hr.emp_dept_hist b on a.empno = b.empno
join hr.dept c on b.deptno = c.deptno
라고 하셨는데
emp_dept_hist테이블에 empno, deptno, fromdate 컬럼 모두 pk인데, 정작 테이블을 보면 empno가 7369라는 값을 2개 가지고 있는데 그러면 중복된 값인데 pk인 이유를 모르겠습니다.
emp_dept_hist의 deptno도, 현실적으로 영업>마케팅>영업 이런식으로 한개의 부서에 2번이상 있을 수 있으니까 pk가 아니지 않나 궁금합니다. 한번 갔던 부서는 다시는 또 근무할 수 없다 는 전제가 깔린건가요?
답변 1
1
PK에 대한 이해를 잘못하고 계시는 군요.
PK가 empno, deptno, fromdate라는 의미는 empno + deptno + fromdate 값으로만 유일하다는 의미입니다. 그러니까 empno: 7369, deptno:10, fromdate:10월 5일로 유일한 값, empno:7369, deptno:20, fromdate 12월 6일로 유일한 값이라는 의미 입니다. empno 7369가 2개 나오든 10개 나오든 상관없이 empno + deptno + fromdate 값으로만 유일합니다.
1번 답변을 참조하십시요.
PK가 테이블에서 한개밖에 없다면 전체 레코드에서 값이 유일하고, N개일 경우 이들의 조합으로 PK 1개의 역할을 한다는 말씀이군요. 감사합니다.