모두CBT

출제 23-3아래 <직원> 테이블에 대해 다음 세 개의 SQ… | [컴퓨터활용능력 1급 필기] 가끔 나오는 문제 · 최근 상시 회차 1회 출제 (331) 상세 페이지

1[컴퓨터활용능력 1급 필기] 가끔 나오는 문제 · 최근 상시 회차 1회 출제 (331)

출제 23-3

아래 <직원> 테이블에 대해 다음 세 개의 SQL 문을 실행하였다. 실행 결과에 대한 설명으로 옳지 않은 것은?

(가) SELECT 이름 FROM 직원 WHERE 부서='영업' OR 직급='과장';
(나) SELECT 이름 FROM 직원 WHERE 부서='영업'
UNION SELECT 이름 FROM 직원 WHERE 직급='과장';
(다) SELECT 이름 FROM 직원 WHERE 부서='영업'
UNION ALL SELECT 이름 FROM 직원 WHERE 직급='과장';


문제 이미지
1
(가)의 결과는 부서가 '영업'이거나 직급이 '과장'인 5개의 레코드이다.
2
(나)의 결과는 (가)와 같이 5개의 레코드이며, 두 SELECT 문에서 모두 선택되는 '김민수'는 한 번만 표시된다.
3
(다)의 결과도 (나)와 같이 중복이 제거되어 5개의 레코드가 표시된다.
4
(나)에서 UNION으로 결합하는 두 SELECT 문은 선택하는 필드의 개수가 같아야 하며, ORDER BY 절은 마지막 SELECT 문 뒤에 한 번만 지정할 수 있다.
해설

옳지 않은 설명은 '(다)도 중복이 제거되어 5개'라는 내용이다. UNION ALL은 중복을 제거하지 않으므로 (다)의 결과는 6개다.

<직원> 테이블(사번·이름·부서·직급)의 내용은 다음과 같다. 1 김민수·영업·과장, 2 이서연·총무·대리, 3 박지훈·영업·사원, 4 최유진·기획·과장, 5 정우람·영업·대리, 6 한소희·총무·과장.

  • (가) 부서='영업' OR 직급='과장' → 김민수, 박지훈, 최유진, 정우람, 한소희의 5개이다.
  • (나) 영업(김민수, 박지훈, 정우람) UNION 과장(김민수, 최유진, 한소희) → UNION이 중복을 제거하므로 김민수는 한 번만 나와 5개이다.
  • (다) 두 결과를 UNION ALL로 합치면 김민수가 두 번 나와 3+3=6개이다.

UNION으로 합치는 SELECT 문들은 필드 개수가 같아야 한다. ORDER BY는 마지막 SELECT 뒤에 한 번만 쓸 수 있다.

내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.