문제
주어진 테이블에 대해 쿼리를 수행한 결과로 옳은 것은?
| ID | CUSTOMER |
|---|---|
| 1 | A |
| 2 | B |
| 3 | C |
| C_ID | PHONE |
|---|---|
| A | 111-1111 |
| A | 222-2222 |
| B | 333-3333 |
| C | 444-4444 |
| D | 555-5555 |
SQLSELECT * FROM TAB1 NATURAL JOIN TAB2;
① 0 ② 3 ③ 5 ④ 15
정답
4번
해설
정답: 4. NATURAL JOIN은 이름이 같은 컬럼을 기준으로 조인하는데, 두 테이블에는 이름이 같은 컬럼이 없으므로 Cartesian Product처럼 3×5=15건이 반환된다.
오답 풀이
- 1번: 공통 컬럼이 없다고 해서 항상 0건이 되는 것은 아니다.
- 2번: CUSTOMER와 C_ID는 값은 대응되지만 컬럼명이 다르므로 NATURAL JOIN 기준이 아니다.
- 3번: TAB2의 행 수만 반환되는 것이 아니다.
- 4번: 공통 컬럼이 없어 모든 조합이 생성되므로 15건이다.
보충 개념 NATURAL JOIN은 동일한 이름의 컬럼을 자동으로 조인 조건으로 사용한다. 컬럼명이 다르면 의미상 같은 값이어도 조인 조건으로 사용되지 않는다.