2026 SQLD 필기 2과목 1장 7~8절 | INNER·OUTER·표준 조인 — 객관식 10문제
데이터위자드 ·
필기 · 객관식 4지선다
객관식 4지선다입니다. 정답과 해설은 각 문제 아래를 눌러 확인하세요.
문제 1
INNER·OUTER·표준 조인에서 INNER JOIN의 행 생성에 대한 설명으로 옳은 것은?
- ① 같은 조인 키가 양쪽에서 반복되면 모든 매칭 쌍이 생성된다.
- ② 같은 컬럼명이면 ON이 없어도 자동으로 정확히 연결된다.
- ③ INNER JOIN 행 수는 항상 왼쪽 행 수와 같다.
- ④ 중복 키는 조인 전에 항상 자동 제거된다.
정답과 해설 보기
정답 ①
INNER JOIN은 ON 조건을 만족하는 행 쌍을 반환합니다. A의 같은 키가 2행이고 B의 같은 키가 3행이면 해당 키에서 2×3=6쌍이 생깁니다. 키의 중복 여부를 보지 않고 두 테이블 중 적은 행 수가 결과라고 생각하면 틀립니다. 조인 조건을 빠뜨리면 카티션 곱으로 행 수가 크게 늘 수 있습니다. 같은 이름의 컬럼이라는 사실만으로 자동 조인되는 것도 아닙니다. 결과 한 행의 단위가 고객인지 주문인지 주문상세인지 확인합니다.
같은 조인 키가 양쪽에서 반복되면 모든 매칭 쌍이 생성된다.
문제 2
A에서 키 1이 2행, B에서 키 1이 3행이다. 키 동등 조인의 해당 결과는?
- ① 2행
- ② 1행
- ③ 6행
- ④ 3행
정답과 해설 보기
정답 ③
각 A행이 B의 세 행과 만나므로 2×3=6행입니다.
같은 조인 키가 양쪽에서 반복되면 모든 매칭 쌍이 생성된다.
문제 3
INNER·OUTER·표준 조인에서 LEFT OUTER JOIN에 대한 설명으로 옳은 것은?
- ① LEFT JOIN은 왼쪽 행을 반드시 한 번씩만 반환한다.
- ② 오른쪽의 매칭 없는 행을 무조건 보존한다.
- ③ ON과 WHERE 위치는 외부 조인에서 항상 무관하다.
- ④ LEFT JOIN은 매칭이 없는 왼쪽 행도 오른쪽 NULL과 함께 보존한다.
정답과 해설 보기
정답 ④
LEFT JOIN은 왼쪽 행을 보존하고, 오른쪽에 매칭이 없으면 오른쪽 컬럼을 NULL로 채웁니다. 주문 없는 고객을 포함하려면 고객을 왼쪽에 둡니다. 다만 한 고객에게 여러 주문이 있으면 고객 행이 한 번만 나온다는 뜻은 아닙니다. LEFT JOIN 이후 오른쪽 컬럼 조건을 WHERE에 두면 NULL 보완 행이 제거될 수 있습니다. 기준 행을 유지하려는 조건인지 최종 결과를 제한하려는 조건인지 구분해 ON과 WHERE를 선택하세요.
LEFT JOIN은 매칭이 없는 왼쪽 행도 오른쪽 NULL과 함께 보존한다.
문제 4
고객 A는 주문 2건, 고객 B는 주문 0건이다. 고객 LEFT JOIN 주문 결과는?
- ① 1행
- ② 0행
- ③ 2행
- ④ 3행
정답과 해설 보기
정답 ④
A는 두 매칭 행, B는 오른쪽 NULL인 한 행으로 총 3행입니다.
LEFT JOIN은 매칭이 없는 왼쪽 행도 오른쪽 NULL과 함께 보존한다.
문제 5
INNER·OUTER·표준 조인에서 외부 조인의 조건 위치에 대한 설명으로 옳은 것은?
- ① WHERE는 외부 조인에서 사용할 수 없다.
- ② 오른쪽 조건을 ON에 두면 매칭 없는 왼쪽 행의 보존을 유지할 수 있다.
- ③ 외부 조인의 오른쪽 WHERE 조건은 NULL 보완 행을 언제나 유지한다.
- ④ ON은 조인 후 원본 테이블을 수정한다.
정답과 해설 보기
정답 ②
주문 없는 고객도 남기면서 결제완료 주문만 붙이려면 결제 상태를 ON 조건에 포함할 수 있습니다. WHERE 주문상태=완료를 쓰면 주문이 NULL인 고객은 UNKNOWN으로 제거됩니다. ON은 연결할 쌍을 정하고 WHERE는 연결 뒤 결과를 거릅니다. 외부 조인의 보존 효과를 판단할 때 가장 중요한 차이입니다. 단순히 모든 조건을 ON으로 옮기는 것도 답은 아니며 최종 요구사항에 맞춰야 합니다.
오른쪽 조건을 ON에 두면 매칭 없는 왼쪽 행의 보존을 유지할 수 있다.
문제 6
주문 없는 고객도 표시하며 완료 주문만 붙인다. 상태 조건의 적절한 위치는?
- ① LEFT JOIN의 ON 안
- ② WHERE 주문상태=완료만
- ③ 고객명에 상태 연결
- ④ ORDER BY만 사용
정답과 해설 보기
정답 ①
ON에서 완료 주문만 매칭하면 완료 주문이 없는 고객도 NULL 보완 행으로 남습니다.
오른쪽 조건을 ON에 두면 매칭 없는 왼쪽 행의 보존을 유지할 수 있다.
문제 7
INNER·OUTER·표준 조인에서 CROSS·NATURAL·USING에 대한 설명으로 옳은 것은?
- ① CROSS JOIN은 결과가 항상 0행이다.
- ② USING은 서로 다른 이름의 컬럼을 자동 변환한다.
- ③ NATURAL JOIN은 같은 이름의 컬럼을 조인 기준으로 사용한다.
- ④ NATURAL JOIN은 선언된 FK만 자동 추론한다.
정답과 해설 보기
정답 ③
CROSS JOIN은 모든 행 쌍을 만들므로 3행과 4행은 12행입니다. NATURAL JOIN은 같은 이름의 컬럼들을 조건으로 사용하므로 스키마 변화에 주의해야 합니다. USING(키)는 동등 조인에 사용할 동일 이름 컬럼을 명시합니다. 각 표준 조인은 목적이 다릅니다. NATURAL JOIN이 외래키 관계를 추론하는 것은 아닙니다. 같은 이름의 상태 컬럼이 추가되면 의도하지 않은 조건이 포함될 수 있으므로 명시적인 ON이나 USING이 더 분명할 때가 많습니다.
NATURAL JOIN은 같은 이름의 컬럼을 조인 기준으로 사용한다.
문제 8
3행 테이블과 4행 테이블을 CROSS JOIN하면?
- ① 7행
- ② 3행
- ③ 12행
- ④ 4행
정답과 해설 보기
정답 ③
모든 조합을 생성하므로 3×4=12행입니다.
NATURAL JOIN은 같은 이름의 컬럼을 조인 기준으로 사용한다.
문제 9
INNER·OUTER·표준 조인에서 조인 후 집계와 COUNT에 대한 설명으로 옳은 것은?
- ① COUNT(NULL)은 1이다.
- ② LEFT JOIN에서 주문 건수는 오른쪽 주문키를 COUNT하는 방식으로 구할 수 있다.
- ③ COUNT(*)는 주문이 없는 고객에서 항상 0이다.
- ④ 조인한 금액은 어떤 관계에서도 중복 합산될 수 없다.
정답과 해설 보기
정답 ②
외부 조인 결과에서 COUNT(*)는 NULL 보완 행도 세고, COUNT(오른쪽의 NOT NULL 키)는 실제 매칭 행만 셉니다. 주문 없는 고객의 주문수를 구할 때 COUNT(*)=1이 되는 함정을 확인하세요. 고객·주문·상세를 함께 연결하면 주문 한 건이 상세 수만큼 반복될 수 있습니다. 주문금액을 그대로 SUM하면 중복 합산될 수 있으므로 먼저 필요한 단위로 집계하거나 결과 단위를 재설계해야 합니다.
LEFT JOIN에서 주문 건수는 오른쪽 주문키를 COUNT하는 방식으로 구할 수 있다.
문제 10
주문 없는 고객의 LEFT JOIN 결과 한 행에서 COUNT(*),COUNT(주문.id)는?
- ① 0, 0
- ② 0, 1
- ③ 1, 0
- ④ 1, 1
정답과 해설 보기
정답 ③
행은 하나 존재하지만 주문 id는 NULL이므로 두 COUNT의 결과가 달라집니다.
LEFT JOIN에서 주문 건수는 오른쪽 주문키를 COUNT하는 방식으로 구할 수 있다.
범위 확인
2026년 학습 범위를 기준으로 구성했습니다. 시험 시행기관의 자격 안내·출제 기준에서 과목과 변경 공지를 확인할 수 있습니다.
이전 · 집계·GROUP BY·HAVING·ORDER BY
SQLD 전체 목차
과목별 이론
- 1과목 · 1장 1~3절 · 데이터 모델·엔터티·속성
- 1과목 · 1장 4~5절 · 관계·식별자와 카디널리티
- 1과목 · 2장 1~3절 · 정규화·조인·트랜잭션 모델
- 1과목 · 2장 4~5절 · NULL·본질식별자·인조식별자
- 2과목 · 1장 1~2절 · 관계형 DB와 SELECT·DISTINCT
- 2과목 · 1장 3절 · 문자·숫자 함수와 CASE
- 2과목 · 1장 4절 · WHERE·날짜 범위·연산자 우선순위
- 2과목 · 1장 5~6절 · 집계·GROUP BY·HAVING·ORDER BY
- 2과목 · 1장 7~8절 · INNER·OUTER·표준 조인
- 2과목 · 2장 1절 · 서브쿼리·EXISTS·스칼라 서브쿼리
- 2과목 · 2장 2~3절 · 집합 연산·ROLLUP·CUBE·GROUPING
- 2과목 · 2장 4~5절 · 윈도우 함수·순위·Top N
- 2과목 · 2장 6~8절 · 계층형 질의·셀프 조인·PIVOT·정규표현식
- 2과목 · 3장 1~2절 · DML·TCL과 트랜잭션
- 2과목 · 3장 3~4절 · DDL·DCL·제약조건·권한
단원별 객관식
- 1과목 · 1장 1~3절 · 데이터 모델·엔터티·속성
- 1과목 · 1장 4~5절 · 관계·식별자와 카디널리티
- 1과목 · 2장 1~3절 · 정규화·조인·트랜잭션 모델
- 1과목 · 2장 4~5절 · NULL·본질식별자·인조식별자
- 2과목 · 1장 1~2절 · 관계형 DB와 SELECT·DISTINCT
- 2과목 · 1장 3절 · 문자·숫자 함수와 CASE
- 2과목 · 1장 4절 · WHERE·날짜 범위·연산자 우선순위
- 2과목 · 1장 5~6절 · 집계·GROUP BY·HAVING·ORDER BY
- 2과목 · 1장 7~8절 · INNER·OUTER·표준 조인
- 2과목 · 2장 1절 · 서브쿼리·EXISTS·스칼라 서브쿼리
- 2과목 · 2장 2~3절 · 집합 연산·ROLLUP·CUBE·GROUPING
- 2과목 · 2장 4~5절 · 윈도우 함수·순위·Top N
- 2과목 · 2장 6~8절 · 계층형 질의·셀프 조인·PIVOT·정규표현식
- 2과목 · 3장 1~2절 · DML·TCL과 트랜잭션
- 2과목 · 3장 3~4절 · DDL·DCL·제약조건·권한
실습
- SQL 학습 실습 1 · 6작업 · SELECT·조건·정렬
- SQL 학습 실습 2 · 6작업 · NULL·COUNT·평균
- SQL 학습 실습 3 · 6작업 · 날짜 범위·문자 조건
- SQL 학습 실습 4 · 6작업 · GROUP BY·HAVING·조건부 합계
- SQL 학습 실습 5 · 6작업 · 조인·행 수·미주문 고객
- SQL 학습 실습 6 · 6작업 · 서브쿼리·EXISTS·NOT EXISTS
- SQL 학습 실습 7 · 6작업 · 순위·동률·고객별 Top N
- SQL 학습 실습 8 · 6작업 · 집합 연산·조건부 피벗·전체 검산
필기 모의고사
예상 모의문제입니다.