문제
다음 NATURAL JOIN 결과에 대한 설명으로 가장 적절한 것은?
<TAB_A>
| KEYA | COL1 | COL2 |
|---|---|---|
| 1 | A | 가 |
| 2 | A | 가 |
| 5 | C | 다 |
<TAB_B>
| KEYB | COL1 | COL2 |
|---|---|---|
| 1 | A | 가 |
| 3 | C | 다 |
SQLSELECT * FROM TAB_A NATURAL JOIN TAB_B;
① COL1, COL2가 모두 같은 행이 조인되어 3건이 출력된다. ② KEYA와 KEYB가 같아야만 조인되므로 1건만 출력된다. ③ NATURAL JOIN은 항상 카테시안 곱을 생성한다. ④ 동일 이름 컬럼이 없어 오류가 발생한다.
정답
1번
해설
정답: 1. NATURAL JOIN은 두 테이블의 동일 이름 컬럼인 COL1, COL2를 자동으로 조인 조건으로 사용하므로 (A, 가) 2건과 (C, 다) 1건이 매칭되어 총 3건이 출력된다.
오답 풀이
- 1번: 동일 이름 컬럼 COL1, COL2 기준으로 3건이 조인된다.
- 2번: KEYA와 KEYB는 이름이 다르므로 NATURAL JOIN 조건에 포함되지 않는다.
- 3번: 카테시안 곱은 CROSS JOIN의 특징이다.
- 4번: COL1, COL2라는 동일 이름 컬럼이 있다.
보충 개념 NATURAL JOIN은 동일 이름 컬럼을 모두 조인 조건으로 사용한다. 의도하지 않은 컬럼이 조건에 포함될 수 있으므로 실무에서는 주의가 필요하다.