정보처리기사 데이터베이스 문제를 준비할 때에는 명령어의 이름을 외우는 것과 실제 결과 행을 적는 것을 나눠 연습해 보세요. 다음은 두 테이블을 결합할 때 주문이 없는 고객이 남는지를 묻는 예제입니다. 객관식에서는 맞는 결과를 고르고 필답 연습에서는 행과 값을 직접 적어 볼 수 있습니다.
예제에 사용할 두 테이블
| 확인할 항목 | 내용 |
|---|---|
| 고객 표 | 고객번호 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회 실기 시험일정|정보처리 실무 필답형