정보처리기사 문제, 주문이 없는 고객까지 남기는 SQL 결과 계산

정보처리기사 데이터베이스 문제를 준비할 때에는 명령어의 이름을 외우는 것과 실제 결과 행을 적는 것을 나눠 연습해 보세요. 다음은 두 테이블을 결합할 때 주문이 없는 고객이 남는지를 묻는 예제입니다. 객관식에서는 맞는 결과를 고르고 필답 연습에서는 행과 값을 직접 적어 볼 수 있습니다.

예제에 사용할 두 테이블

확인할 항목 내용
고객 표 고객번호 1은 가람, 고객번호 2는 누리입니다. 두 고객번호는 각각 한 번만 나오고 다른 고객은 없다고 가정합니다.
주문 표 주문번호 101과 102가 있고 두 건 모두 고객번호 1의 주문입니다. 고객번호 2의 주문 기록은 없습니다.
결합 조건 고객을 왼쪽에 두고 고객번호가 같은 주문을 연결합니다. 별도의 필터나 중복 제거는 하지 않으며, 결과 열은 고객번호와 주문번호입니다.

INNER JOIN과 LEFT JOIN에서 나오는 결과

내부 조인에서는 두 표 모두에 있는 고객번호 1만 연결되어 (1, 101)과 (1, 102) 두 행이 나옵니다. 왼쪽 외부 조인에서는 이 두 행에 (2, NULL)이 더해져 세 행입니다. 고객 2는 왼쪽 테이블에 존재하지만 짝을 찾을 오른쪽 주문이 없으므로 주문번호가 비어 있습니다.

고객별로 묶어서 주문 개수를 셀 때는 무엇을 세는지도 중요합니다. 이 예에서 COUNT(주문번호)는 고객 2의 NULL을 세지 않아 0이지만, LEFT JOIN 결과에서 COUNT(*)는 그 고객이 남아 있는 한 행을 세어 1입니다. 행이 남는 일과 주문이 있는 일은 서로 다릅니다.

이 예제는 연습을 위해 만든 데이터입니다. Q-Net 정보처리기사의 데이터베이스구축 과목과 해당 연도의 출제기준을 함께 참고하세요.

함께 읽기 2026 정보처리기사 3회 실기 시험일정|정보처리 실무 필답형

공식 자료

댓글 남기기