입력 데이터

문제
다음 SQL 문을 실행했을 때, 그 결과로 가장 적절한 것은?
보기 문제 이미지
정답
1
해설
정답은 1번입니다. 이 문제는 두 테이블을 결합할 때 어느 한 쪽에만 데이터가 있더라도 누락시키지 않고 모두 결과에 포함하는 FULL OUTER JOIN의 동작 방식을 묻고 있습니다. 이는 LEFT JOIN과 RIGHT JOIN의 결과를 합친 합집합(Union)의 개념으로 이해하면 쉽습니다. 1. ORDER_ID | NAME (108 | NULL, 107 | 김서준, NULL | 최서연) : ORDER_ID 107은 CUSTOMER_ID 5와 매칭되어 '김서준'과 결합됩니다. ORDER_ID 108은 매칭되는 고객 정보(6)가 CUSTOMERS 테이블에 없으므로 NAME이 NULL로 출력됩니다. 반대로 고객 '최서연'(7)은 주문 내역이 없으므로 ORDER_ID가 NULL로 출력됩니다. 양쪽의 모든 데이터를 유지한 이 결과가 FULL OUTER JOIN의 올바른 실행 결과입니다. 2. ORDER_ID | NAME (108 | NULL, 107 | 김서준) : 이 결과는 ORDERS 테이블을 기준으로 한 LEFT OUTER JOIN의 결과입니다. 주문 정보는 모두 유지되었으나, 주문을 하지 않은 고객 '최서연'의 정보가 누락되어 있습니다. 3. ORDER_ID | NAME (107 | 김서준) : 이 결과는 양쪽 테이블에 공통으로 존재하는 CUSTOMER_ID 5에 대해서만 결합된 INNER JOIN의 결과입니다. 매칭되지 않은 108번 주문과 '최서연' 고객이 모두 제외되었습니다. 4. ORDER_ID | NAME (108 | 김서준, 107 | 김서준, NULL | 최서연) : ORDER_ID 108의 CUSTOMER_ID는 6이므로 5인 '김서준'과 결합될 수 없습니다. 조인 조건을 무시하고 데이터를 임의로 매칭한 잘못된 결과입니다. FULL OUTER JOIN은 조인 조건에 성공한 데이터(107-김서준)뿐만 아니라, 왼쪽 테이블에만 있는 데이터(108-NULL)와 오른쪽 테이블에만 있는 데이터(NULL-최서연)를 모두 결과 집합에 포함합니다. 데이터 유실 없이 모든 정보를 확인하고자 할 때 사용하는 방식입니다. 따라서, 정답은 '1. ORDER_ID | NAME (108 | NULL, 107 | 김서준, NULL | 최서연)' 입니다.
12330번

1차 문제 검수

SQD SQL 기본 및 활용 SQL 기본 조인
문제
보기

입력된 내용이 없습니다.

선택지1
선택지2
선택지3
선택지4
정답
키워드
키워드
해설
비기봇 해설